繁体   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