Userverbindungen
am 24.07.2007 22:32:13 von Mario Ramseier
Hallo zusammen
Ich bin gerade dabei Userverbinden à la XING zu erstellen, d.h. wer sind
meine Kontakte etc. Mein Ansatz ist eine Tabelle welche die Felder friend1
und friend2) enthält, dort trage ich dann jeweils die Userids ein.
Ich habe nun mal eine Query zusammengestellt:
Select a.*, b.id as userid, b.username FROM friend_connections a
LEFT JOIN user b ON b.id = a.friend1
WHERE (a.friend1 = 1 OR a.friend2 = 1) AND b.id != 1
ORDER BY b.username ASC
Das funktioniert soweit, jedoch nur solange die ID des Users (in diesem
Beispiel Userid 1) in der Spalte friend1 steht, ansonsten funktioniert es
natürlich nicht. Nun sind diese Verbindungen für beide Parteien gültigt,
d.h. der Kontakt soll angezeigt werden egal ob ich den Kontakt erstellt habe
oder mein "Gegenüber". Müsste man hier eine Subquery einsetzen oder ist evt.
der Ansatz für die Tabellenstruktur unbrauchbar? Irgendwie komm ich einfach
nicht auf einen grünen Zweig mit dieser query, sprich es scheint "der Knopf"
drin zu sein :)
Danke im Voraus für aufklärende Hinweise.
Grüsse
Re: Userverbindungen
am 24.07.2007 23:00:41 von Mario Ramseier
Hallo nochmals
Ging wohl etwas zu früh weg, mit:
Select a.*, b.id as userid, b.username FROM friend_connections a
LEFT JOIN user b ON (b.id = a.friend1 OR b.id = a.friend2) WHERE (a.friend1
= 1 OR a.friend2 = 1) AND b.id != 1
ORDER BY b.username ASC
scheint es zu funktionieren. Ist die Query zu "unperformant"?
grüsse
"Mario Ramseier" schrieb im Newsbeitrag news:...
> Hallo zusammen
>
> Ich bin gerade dabei Userverbinden à la XING zu erstellen, d.h. wer sind
> meine Kontakte etc. Mein Ansatz ist eine Tabelle welche die Felder friend1
> und friend2) enthält, dort trage ich dann jeweils die Userids ein.
>
> Ich habe nun mal eine Query zusammengestellt:
> Select a.*, b.id as userid, b.username FROM friend_connections a
> LEFT JOIN user b ON b.id = a.friend1
> WHERE (a.friend1 = 1 OR a.friend2 = 1) AND b.id != 1
> ORDER BY b.username ASC
>
> Das funktioniert soweit, jedoch nur solange die ID des Users (in diesem
> Beispiel Userid 1) in der Spalte friend1 steht, ansonsten funktioniert es
> natürlich nicht. Nun sind diese Verbindungen für beide Parteien gültigt,
> d.h. der Kontakt soll angezeigt werden egal ob ich den Kontakt erstellt
habe
> oder mein "Gegenüber". Müsste man hier eine Subquery einsetzen oder ist
evt.
> der Ansatz für die Tabellenstruktur unbrauchbar? Irgendwie komm ich
einfach
> nicht auf einen grünen Zweig mit dieser query, sprich es scheint "der
Knopf"
> drin zu sein :)
>
> Danke im Voraus für aufklärende Hinweise.
>
> Grüsse
>
>