从一个表中选择所有值并引用另一个表,但缺少值

时间:2015-12-09 10:27:47

标签: mysql sql select

我有两张桌子(实际上我有多张桌子但是对于这个问题,我只需要两张桌子)。我想从一个符合条件的表中选择所有值。条件是 - 选择第二个表中未引用的所有值。更清楚一点:想象一下你的朋友姓名,地址和电话号码都有一张桌子。他们也打算给你他们的生日,你想要存储在第二个表中。现在你想找到那些还没有给你生日的人。因此,您希望列出一个表中的所有信息,其中第二个表中与它们相关的值为空。

我尝试了以下内容:

SELECT A.value1, A.value2, A.value3
FROM Table A, Table B
WHERE A.PrimaryKey=B.PrimaryKey
AND B.value1 = NULL;

2 个答案:

答案 0 :(得分:4)

当您需要inner join

时,您正在使用隐式left join语法
SELECT A.value1, A.value2, A.value3
FROM TableA A
LEFT JOIN TableB B
   ON A.PrimaryKey=B.PrimaryKey
WHERE B.value1 IS NULL;

答案 1 :(得分:0)

使用左连接查询如下:

SELECT A.value1, A.value2, A.value3
FROM A
LEFT JOIN B
ON A.PrimaryKey=B.PrimaryKey
WHERE B.value1 IS NULL;