[英]SQL excluding via Join
這可能很簡單,但我發現很難繞過這個。
基本上,我有2個表,a和b。 'b'包含所有可能項目的列表,'a'包含鏈接到'b'中項目的行,以及父編號。 即,要顯示a中的行與他們的信息,我做這樣的事情:
select a.field1, a.field2, b.description
from a inner join b on a.itemid = b.itemid
where a.parentnumber = @parentnumber
那種事情起作用。 但我還想要一個下拉框來顯示未在該父帳戶中列出的所有項目。 我該怎么做?
SELECT *
FROM b
WHERE itemid NOT IN
(
SELECT itemid
FROM a
WHERE a.parentnumber = @parentnumber
)
通過對此子查詢使用左連接,您可以提供別名並使用此別名執行空檢查。 我更喜歡這種方法,因為包含子查詢結果的別名可以在整個查詢中使用。
SELECT *
FROM b
LEFT JOIN
(
SELECT itemid
FROM a
Where a.parentnumber = @parentnumber
) As Sub On b.itemid = sub.itemid
WHERE sub.itemid IS NULL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.