Tabela friends składa się z 3 pól: friendship_id,friend1,friend2.
Tabela users składa się z 2 pól: user_id i username.
Chciałbym teraz pobrać nicki wszystkich przyjaciół usera o id=1, którego id może znajdować się zarówno w polu friend2 jak i friend1.
Mam takie zapytanie :
SELECT friendship_id,friend2,username FROM friends,users WHERE friend1 = 1 AND friend2=user_id UNION SELECT friendship_id,friend1,username FROM friends,users WHERE friend2 = 1 AND friend1=user_id
Ale nie jest ono zbyt wydajne (union).
Kiedyś kombinowałem z takim zapytaniem , ale nie umiem dodać do tego żeby pobierało z tabeli users pole username:
SELECT friendship_id, IF( friend1 =1, friend2, friend1 ) AS przyjaciel FROM friends WHERE friend1 =1 OR friend2 =1;
Jak zmodyfikować to drugie zapytanie tak aby pobierało też username?