获取未连接用户列表的 SQL 查询
Posted
技术标签:
【中文标题】获取未连接用户列表的 SQL 查询【英文标题】:SQL query to fetch unconnected user list 【发布时间】:2016-11-26 08:23:57 【问题描述】:我有两个表,名为 Users & Connections
我需要从用户表中获取未连接的用户列表
例如 userid 1 已发送请求并连接到 4 和 6。那么如何编写查询来获取未与 userid(1) 连接的其他用户。
预期结果将是 userid =1
2 bb b@a.com
3 cc c@c.com
5 ff
感谢您的回答。
【问题讨论】:
【参考方案1】:直截了当:
SELECT * from users a
WHERE userid != :userid
AND not exists (select * from connections
where (userid = :userid and c_userid = a.userid)
or (userid = a.userid and c_userid = :userid))
【讨论】:
【参考方案2】:以下将返回所有不在连接表中的用户。
SELECT * FROM users AS u
WHERE (SELECT count(*) FROM connections AS c
WHERE c.userid=u.userid AND reqType != 0) = 0;
【讨论】:
【参考方案3】:以下查询获取与 userid =1 无关的用户
select u.userid,u.name,u.email
from connections
left join users as u on connections.c_userid = u.userid
where connections.userid =1 and connections.reqtype in (0,1)
【讨论】:
【参考方案4】:你试试这个查询
select *from users where userid not in (select c_userId from connenctions where where userid=1) and userid!=1
【讨论】:
以上是关于获取未连接用户列表的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章