我浏览了该网站上的其他一些帖子,并没有看到我正在寻找的确切内容,所以这里是。
假设我有 2 张桌子
juser
-----------------------------
userID firstName lastName
-----------------------------
1 billy bob
2 jezze belle
3 bobbie sue
和:
juserrel
---------------------------------------------
id userID relUserID state
---------------------------------------------
1 1 2 approved
2 2 1 retired
3 2 1 approved
4 3 2 approved
我想要做的是获得一个结果集,该结果集显示 juser 表中每个用户的每个用户信息,并在结果集中添加一个名为连接的列,该列显示特定用户与另一个用户有多少“活动”连接。
根据上表,我期望的结果是
resultSet
-----------------------------------------------
userID firstName lastName connections
-----------------------------------------------
1 billy bob 2
2 jezze belle 3
3 bobbie sue 1
我尝试的查询如下
select userID, firstName, lastName , coalesce(x.cnt,0) as connections
from juser
left outer join (select count(*) cnt from juserrel where juserrel.userID =
userID or juserrel.relatedUserID = userID and juserrel.state = 'approved')
x on userID = userID
我得到的结果集如下所示:
resultSet
-----------------------------------------------
userID firstName lastName connections
-----------------------------------------------
1 billy bob 4
2 jezze belle 4
3 bobbie sue 4
请帮忙 ;)