SQL-Query: Suche alle Freunde
-
Hallo,
ich habe folgende Tabelle vorliegen, die eine Freundschaftsbeziehung zwischen zwei Benutzern darstellen soll:
Spalte 1: user1 (FK)
Spalte 2: user2 (FK)Ist es möglich mit nur einer Abfrage alle Freund von Benutzer X abzufragen?
Tabelle ist z.B. gefüllt mit:user1,user2
1,2
1,3
1,4
5,1
6,1Also ist:
1 Freund von 2
1 Freund von 3
1 Freund von 4
5 Freund von 1
6 Freund von 1Kann ich jetzt alle Freunde von Nummer 1 herausbekommen?
Die Id 1 kann eben in der ersten oder in der zweiten Spalte stehen.Danke schon mal...
Grüße
clubby
-
Du könntest BEIDE Abfragen gemeinsam in EINER Abfrage formulieren, in dem Du sie mit einen UNION verbindest:
SELECT user1 FROM link
UNION
SELECT user2 FROM link
und dabei entsprechend filtern
-
Mh? Verstehe ich das Problem falsch oder meinst du einfach sowas:
select * from bla where [user1] = 1 or [user2] = 1
-
Ach, ich bin blöd. Hab's falsch verstanden.
-
Meinst du sowas?
SELECT * FROM users WHERE user_id IN ( SELECT user1 FROM link WHERE user2 = 123 UNION SELECT user2 FROM link WHERE user1 = 123 );
-
Vielen Dank für die Antworten, jetzt klappts!