Folgendes Schema:
Und folgende Datensätze
Im Endeffekt ist eines Freundzuweisung. Ein Freund ist, wenn es einen Datensatz von User X gibt, wo user_id=X oder friend_id=X ist
Das funktioniert nun auch super, aber mein Problem ist, dass ich einen Join haben möchte um nicht die FKs sondern direkt die Wert zu haben:
Das Query geht natürlich nicht:
=> Script line: 1 Not unique table/alias: 'user'
Ist aber genau das, was ich suche. Ich kann eines der LEFT Joins auskommentieren und dann krieg ich entweder von user oder von friend den Join, aber das bringt mir nichts.
Ich will keine zwei Joins machen, weil ich weitere Logik-Operationen an die Applikation weitergeben will, was ich vermeiden möchte
Code:
friends: id | user_id(FK) | friend_id(FK)
Code:
1 | 100 | 101 2 | 100 | 102 3 | 103 | 100
Das funktioniert nun auch super, aber mein Problem ist, dass ich einen Join haben möchte um nicht die FKs sondern direkt die Wert zu haben:
Code:
id | user_id | friend_id | user.name | friend.name ---+---------+-----------+-----------+------------- 1 | 100 | 101 | user1 | user2 2 | 100 | 102 | user1 | user 3 3 | 103 | 100 | user4 | user1
Code:
SELECT * FROM `friend` LEFT JOIN user ON (friend.USER_ID=user.ID) LEFT JOIN user ON (friend.FRIEND_ID=user.ID) WHERE (friend.USER_ID='100' OR friend.FRIEND_ID='100')
Ist aber genau das, was ich suche. Ich kann eines der LEFT Joins auskommentieren und dann krieg ich entweder von user oder von friend den Join, aber das bringt mir nichts.
Ich will keine zwei Joins machen, weil ich weitere Logik-Operationen an die Applikation weitergeben will, was ich vermeiden möchte
Kommentar