0
A
回答
3
一种选择使用CHANNELS
和SUBSCRIBERS
表之间的LEFT JOIN
:
SELECT c.ChanID, c.name
FROM CHANNELS c
LEFT JOIN SUBSCRIBERS s
ON c.ChanID = s.ChanID
WHERE s.ChanID IS NULL AND
c.nickname = 'Jonny' AND -- not sure about this condition
s.nickname = 'Jonny' -- or this one
这里是一个视觉什么中间表看起来像合并期间:
c.ChanID | c.name | s.ChanID
1 | first | 1
2 | second | NULL <-- the second and third channels don't match
3 | third | NULL <-- to anything in the SUBSCRIBERS table (IS NULL)
4 | fourth | 4
+0
不清楚昵称发生了什么,您的数据/设计可能有问题。如果昵称检查使查询无效,请将其删除。 –
0
SELECT CHANNELS.ChanID FROM CHANNELS
LEFT JOIN SUBSCRIBERS ON CHANNELS.ChanID=SUBSCRIBERS.ChanID
WHERE
CHANNELS.type='public' AND
SUBSCRIBERS.nickname='a'
试试这个
编辑: 我没有得到正确的问题。如果要选择Jonny未订阅的行,请使用像这样的子查询。
SELECT ChanID C FROM CHANNELS WHERE
(SELECT COUNT(*) FROM SUBSCRIBERS S WHERE S.ChanID=C.ChanID and S.nickname='Jonny') = 0
0
select c.ChanID,C.name
from Channels c Left join subscribers s on
c.ChanID=s.ChanID
where s.ChanID is null
这应该工作的其他条件可能不是必需的。
相关问题
- 1. 如何获取SQL中两个表中不匹配的行?
- 2. 如何从两个SQL表中获取不匹配的记录?
- 3. 雪花,获取两个表之间的不匹配列表(SQL)
- 4. 如何从SQL中的两个表中获取匹配的行,而不需要从java重复调用
- 5. 如何从SQL中获取匹配和不匹配的行加入
- 6. 匹配两个表的SQL
- 7. 获取不匹配值加入SQL两个表
- 8. 从两个数据表中获取不匹配的值
- 9. 获取两个列表的匹配
- 10. 获得匹配的两个表中
- 11. SQL获取第一个匹配的行
- 12. SQL在两个表中匹配的行上选择一行
- 13. 两个表中的不匹配列
- 14. 匹配两个不同表中的ID
- 15. 如何从sql中的相同表中获取不匹配的记录?
- 16. 加入两个不匹配行的表
- 17. SQLAlchemy:获取匹配来自两个列表的元素的行
- 18. 如何在两个SQL表中找到匹配项?
- 19. SQL如何从两个表中选择并匹配它们
- 20. SQL查询返回来自两个表的不匹配的行
- 21. 查询两个表的Start_date在sql中不匹配
- 22. 联接 - 从一个表中获取行,然后获取在另一个表中匹配的所有行?但是不应该重复第一个表匹配行
- 23. 从SQL表中获取下一个匹配的字符串值
- 24. 如何删除使用SQL在两个独立表中匹配的行?
- 25. 如何在两个文档中提取不匹配的文本
- 26. 在SQL中查找2个表中不匹配的行
- 27. 如何从sql中的两个表中获取唯一值?
- 28. 如何从SQL Server中的两个表中获取值?
- 29. 如何从取决于两个匹配值从不同的表
- 30. 比较两个表并获取不匹配的值
您可能会使用'not in'或'not exists' ... – Prisoner