我有一点问题,找出一个SQL语句,我需要作出。
我有两张桌子
朋友
===================================
friendfromid | friendtoid | request
===================================
用户
=================
userid | username
=================
我需要得到我朋友的用户名和用户名。
我的id要么在friendfromid中,要么在friendtoid中,这取决于我是被请求的用户还是被请求的用户。
所以基本上,脚本需要查看friends表,获取我的id为friendfromid或friendtoid的所有行,检查请求字段是否设置为1,获取匹配的所有行,然后获取每个friendfromid或friendtoid(不是我的)的id和用户名。
例如,如果我的id是8,而friends id是9,假设他们请求我他们的id将在friendfromid字段中,而我的id将在friendtoid字段中,这意味着脚本将获取他们的id(9),并将其与user s表中的该用户相匹配。
最佳答案
这将提供包含好友id和好友名称的好友列表:
SELECT u.userid , u.username
FROM Friends f
JOIN Users u
ON (( f.friendfromid ={the ID} AND friendtoid=u.userid)
OR ( f.friendtoid = {the ID} AND friendfromid=u.userid))
WHERE f.request = 1
放置{the ID}=需要其好友列表的用户ID。
关于php - MySQL-复杂的查询问题,多个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8830065/