Userverbindungen

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
>
>