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. 獲取兩個列表的匹配
- 6. 獲得匹配的兩個表中
- 7. SQL獲取第一個匹配的行
- 8. SQL在兩個表中匹配的行上選擇一行
- 9. 匹配兩個不同表中的ID
- 10. 如何從sql中的相同表中獲取不匹配的記錄?
- 11. SQLAlchemy:獲取匹配來自兩個列表的元素的行
- 12. SQL查詢返回來自兩個表的不匹配的行
- 13. SQL如何從兩個表中選擇並匹配它們
- 14. 如何在兩個SQL表中找到匹配項?
- 15. 查詢兩個表的Start_date在sql中不匹配
- 16. 聯接 - 從一個表中獲取行,然後獲取在另一個表中匹配的所有行?但是不應該重複第一個表匹配行
- 17. 如何在兩個文檔中提取不匹配的文本
- 18. 從SQL表中獲取下一個匹配的字符串值
- 19. 如何刪除使用SQL在兩個獨立表中匹配的行?
- 20. 比較兩個表並獲取不匹配的值
- 21. 如何比較兩個相同的表來匹配或不匹配行?
- 22. 如何選擇不匹配SQL中另一個表的表的行?
- 23. 如何在兩個表中找到匹配的行,不存在於第二個
- 24. 匹配在SQL Server的兩個表2008
- 25. SQL獲取父行,如果子行匹配多個條件
- 26. 如何返回刪除與兩列匹配的SQL行的表
- 27. 如何匹配兩個TableView中的值
- 28. EntityFramework - 如何獲取與userId匹配的另一個表中的任何IDS匹配的行?
- 29. 如何在SQL中查找與另一個表中匹配的表的行組?
- 30. 如何比較兩行或獲取與比較的行不匹配的字段?
您可能會使用'not in'或'not exists' ... – Prisoner