Hallo zusammen,
ich arbeite zwar schon ein paar Tage mit mySQL aber ich bin gerade auf ein Problem gestoßen, dessen Lösung mir nicht einfallen mag. Ich hoffe, einer von euch kann mir einen Tipp geben, wie bzw. ob sich das Problem in einem SQL Statement lösen lässt
Es ist eigentlich ganz simpel. Ich habe eine Tabelle, die nur aus zwei Feldern besteht. Nennen wir sie der Einfachheit halber mal "friendslist"
Was ich jetzt bräuchte ist ein SQL Statement, das mir user_id1 oder user_id2 liefert, wenn das entgegengesetzte einem bestimmten Wert entspricht. Also im Grunde will ich
SELECT user_id1 FROM friendslist WHERE user_id2=x
SELECT user_id2 FROM friendslist WHERE user_id1=x
Damit ich das Ergebnis wiederum als Liste für die Abfrage in der User-Tabelle nutzen kann. Also so:
SELECT users.id, users.user_login FROM users WHERE id IN (SELECT user_id1 FROM friendslist WHERE user_id2=2)
nur halt mit beiden Ergebnissen.
Ich kann die beiden Ergebnislisten natürlich in PHP durch ein Array laufen lassen und dann wieder in die User-Abfrage einbauen. Aber mir wäre es lieber wenn das in einer SQL Abfrage unterzubringen geht. Ist das irgendwie möglich?
ich arbeite zwar schon ein paar Tage mit mySQL aber ich bin gerade auf ein Problem gestoßen, dessen Lösung mir nicht einfallen mag. Ich hoffe, einer von euch kann mir einen Tipp geben, wie bzw. ob sich das Problem in einem SQL Statement lösen lässt
Es ist eigentlich ganz simpel. Ich habe eine Tabelle, die nur aus zwei Feldern besteht. Nennen wir sie der Einfachheit halber mal "friendslist"
Code:
+---------------------+ | user_id1 | user_id2 | +---------------------+ | 1 | 2 | | 2 | 3 | | 2 | 42 | | 51 | 2 | | 44 | 1 | | 3 | 1 | +---------------------+
SELECT user_id1 FROM friendslist WHERE user_id2=x
SELECT user_id2 FROM friendslist WHERE user_id1=x
Damit ich das Ergebnis wiederum als Liste für die Abfrage in der User-Tabelle nutzen kann. Also so:
SELECT users.id, users.user_login FROM users WHERE id IN (SELECT user_id1 FROM friendslist WHERE user_id2=2)
nur halt mit beiden Ergebnissen.
Ich kann die beiden Ergebnislisten natürlich in PHP durch ein Array laufen lassen und dann wieder in die User-Abfrage einbauen. Aber mir wäre es lieber wenn das in einer SQL Abfrage unterzubringen geht. Ist das irgendwie möglich?
Comment