私はここのようなテーブルを持っています:
friend : (userid , friendid)
だから、もしuser_a
友達ならuser_b
、下の行をテーブルにロードします
user_a , user_b
そして私はusar_b , user_a
テーブルに挿入しません。
では、mysqlクエリを使用してuser_bのフレンドリストを取得するにはどうすればよいですか?
私はここのようなテーブルを持っています:
friend : (userid , friendid)
だから、もしuser_a
友達ならuser_b
、下の行をテーブルにロードします
user_a , user_b
そして私はusar_b , user_a
テーブルに挿入しません。
では、mysqlクエリを使用してuser_bのフレンドリストを取得するにはどうすればよいですか?
userAの友達が欲しいとしましょう。userAの
すべての友達を取得する必要があります。それをuserAの友達を持つすべてのユーザーと結合します。
userAのIDが1001
クエリであると仮定すると、
select UserID from Friends
where FriendID = 1001
Union All
select FriendID from Friends
where UserID = 1001
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
これを試して
この条件(t1.id<t2.id)
では、1つのペアのみを含めa,b
、除外することができます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)