簡體   English   中英

SQL語句問題-如何檢索在另一個表中不存在主鍵的表記錄作為外鍵

[英]SQL Statement Question - How to retrieve records of a table where the primary key does not exist in another table as a foreign key

我有一個表(TableA),其中主鍵作為另一個表(TableB)上的外鍵存在。 我正在嘗試編寫一個SQL查詢(我正在使用SQL Server 2005),該查詢將在TableA中找到所有記錄,其中主鍵在TableB中不作為外鍵存在(我們說是在TableAID上聯接)。 我懷疑它將使用外部聯接,但是我一直在努力。 任何人都可以幫助SQL newb嗎?

SELECT A.*
FROM TableA AS A
LEFT JOIN TableB AS B ON (A.ID = B.TableAID)
WHERE B.TableAID IS NULL

您可以使用NOT EXISTS

SELECT columnlist
FROM TableA
WHERE NOT EXISTS(
   SELECT * FROM TableB
   WHERE TableB.column = TableA.column)

這是SQL中幾乎自然的語言(“ WHERE NOT EXISTS”)。

SELECT A.*
FROM TableA AS A
WHERE NOT EXISTS ( SELECT 1
                   FROM TableB
                   WHERE TableA.ID = B.TableAID
                 )
Select * from TableA 
where 
 TableA.TableAID not in (select TableB.TableAID from TableB)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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