簡體   English   中英

SQL不包括通過Join

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM