J'ai une table comme ici:
friend : (userid , friendid)
donc, si user_a
est ami avec user_b
, je vais charger la ligne ci-dessous dans la table
user_a , user_b
et je usar_b , user_a
pas usar_b , user_a
dans la table.
alors comment puis-je get la list d'amis de user_b avec la requête mysql?
Disons que vous voulez les amis de userA
Vous devez get tous les amis de userA, Union avec tous les users dont l'ami est userA.
En supposant que l'ID de l'user A est 1001
la requête sera
select UserID from Friends where FriendID = 1001 Union All select FriendID from Friends where UserID = 1001
La condition (t1.id<t2.id)
permet d'inclure une seule paire a,b
et d'exclure b,a
select t1.userid user1, t2.userid user2 FROM friends t1 JOIN friends t2 ON (t1.friend=t2.id) and (t1.id<t2.id)
select a.user,a.friend from friend a,friend b where a.user=b.user and a.friend=b.friend and a.user<>b.friend and a.friend<>b.user
essaye ça