【发布时间】:2013-03-09 09:57:54
【问题描述】:
我有 2 个表,我想从中获取用户数据。
表 1: frei_session
username session_id
Prince 51
Dilip 49
Sumit 50
表 2: friendrequest
requestTo requestFrom status
49 50 C
50 51 C
49 51 P
friendrequest 表显示用户之间的关系,其中 C 代表 Complete,P 代表 Pending 。表示status = C 是否都是朋友,如果status = P 请求处于待处理状态。
frei_session表格显示网站的所有在线用户。
我只想限制与朋友的聊天。我尝试了以下查询,但它显示了所有在线用户
假设用户 49 在线
SELECT DISTINCT f.username,f.session_id
FROM frei_session AS f
LEFT JOIN friendrequest AS fr ON fr.requestFrom=f.session_id
LEFT JOIN friendrequest AS frnd ON frnd.requestTo=f.session_id
WHERE (fr.requestFrom<>49 OR frnd.requestTo<>49) AND (fr.status = 'C' OR frnd.status = 'C')
这个查询显示这样的输出
username session_id
Prince 51
Sumit 50
但我想要这样的输出
username session_id
Sumit 50
因为用户 51 和用户 49 不是朋友
【问题讨论】: