我的MySQL表结构是这样的。
USER uid FRIENDS fuid,fuid2,fapproved
对于每个朋友关系,我在朋友中插入2条记录。如果用户1是用户2的朋友,则将下一行插入到FRIENDS中
1,2,1 2,1,1 1,3,1 3,1,1 2,3,1 3,2,1
用户ID 3是用户ID 1和用户ID 2的朋友
如何在一个SQL查询中获取用户ID 3?
给定两个用户@ friend1和@ friend2,找到他们的共同朋友的所有用户:
SELECT user.uid FROM user WHERE EXISTS( SELECT TOP 1 1 FROM Friends WHERE Friends.fuid = @friend1 AND Friends.fapproved = 1 AND Friends.fuid2 = User.uid ) AND EXISTS( SELECT TOP 1 1 FROM Friends WHERE Friends.fuid = @friend2 AND Friends.fapproved = 1 AND Friends.fuid2 = User.uid )