簡體   English   中英

將記錄帶入表A,而不帶入表B左外部聯接

[英]Bringing records in TableA Not in Table B Left Outer Join

在采訪我時提出了以下問題。 我不知道在這種情況下是否可以使用左外部聯接

CREATE TABLE TableA(Id INT, Name VARCHAR(255));
CREATE TABLE TableB(Id INT);

INSERT INTO TableA(Id, Name)
VALUES (1, 'Person A'),
       (2, 'Person B'),
       (3, 'Person C'),
       (4, 'Person D'),
       (5, 'Person E'),
       (6, 'Person F');

INSERT INTO TableB(Id)
VALUES (1),
       (2),
       (3);

輸出應為

Name
Person D
Person E
Person F

兩張桌子。 表A和表B。我希望表A中的名稱不在表B中。通過左外部聯接可以做到這一點。 我用紙和筆掙扎了幾分鍾,然后在紙上寫了一個查詢,后來發現不對。

注意:請勿使用Sub查詢。 我做了同樣的事情,面試官要求我通過左外連接來做到這一點。

讓我知道是否可能。

SQL小提琴

聽起來很簡單

SELECT * FROM TableA a
LEFT JOIN TableB b on b.Id=a.Id
WHERE b.ID is null

那應該給你表中的匹配項。 訣竅是要意識到您對B側的空行感興趣。

您可以使用Subquery嗎?

SELECT Name FROM TableA 
WHERE TableA.ID not in (SELECT TableB.ID From TableB)

暫無
暫無

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

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