我有一点问题,找出一个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/

10-13 01:24