Mysql 将表A中的记录而不是表B中的记录左外联接
下面的问题是在接受我采访时提出的。我不知道在这种情况下是否可以使用左外连接Mysql 将表A中的记录而不是表B中的记录左外联接,mysql,sql,left-join,Mysql,Sql,Left 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
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中。是否可以通过左外联接来实现这一点。我用纸和笔挣扎了几分钟,然后在纸上写了一个查询,后来发现是错的
注意:请不要使用子查询。我也这么做了,面试官让我通过左外连接来完成
让我知道这是否可能
您可以使用子查询吗
SELECT Name FROM TableA
WHERE TableA.ID not in (SELECT TableB.ID From TableB)
您可以使用子查询吗
SELECT Name FROM TableA
WHERE TableA.ID not in (SELECT TableB.ID From TableB)
听起来很容易
SELECT * FROM TableA a
LEFT JOIN TableB b on b.Id=a.Id
WHERE b.ID is null
这将为您提供表中的匹配项。诀窍是认识到您对B端的空行感兴趣。听起来很简单
SELECT * FROM TableA a
LEFT JOIN TableB b on b.Id=a.Id
WHERE b.ID is null
这将为您提供表中的匹配项。诀窍是认识到你对B边的空行感兴趣。我做了,他特别用左外连接问我做了,他特别用左外连接问谢谢你的回答我相信这是个棘手的问题谢谢你的回答我相信这是个棘手的问题