繁体   English   中英

SQL检查组中是否存在值

[英]SQL check if value exists in group

假设我有一个频道成员表

channelID  | accountID  | role
------------------------  
1          | Bob   | 100
2          | Bob   | 100
1          | Dave  | 101

和另一个频道表

channelID  | channelName     | type 
---------------------------------------  
1          | Public Channel  | public
2          | Private Channel | private

我将如何获得用户不在的频道是公开的?

我尝试执行此操作,但由于有两个通道ID为1的项,因此无法弄清楚如何对通道成员表进行分组,因此当我用用户Dave搜索时进行查询时,得到通道1的结果是它什么也不会返回。 我正在使用的查询:

Select ChatChannels.channelID, channelName, type
From ChatChannels
INNER JOIN ChatChannelMembers
On ChatChannels.channelID = ChatChannelMembers.channelID
Where AccountID = 'Dave'

这样行吗?

SELECT (stuff)
FROM ChatChannels CC
WHERE CC.type = 'Public'
  AND CC.channelID NOT IN (SELECT channelID FROM ChatChannelMembers WHERE AccountID = 'Dave')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM