首页 > 解决方案 > MySQL:如果第二个表中没有匹配的行,如何从第一个表中选择一行

问题描述

表1(数字主键):

表2(编号可重复,id pk):

想要的输出:

124, asd

我必须将第一个表的行与第二个表中的行进行比较。

如果第 1 行不等于第二行中的每一行,a.number = b.number那么我们应该执行select * from table1

如果我们找到匹配的行(在表 1 和表 2 之间),那么我们不应该执行上面找到的选择查询。

更新:如何比较 3 个这样的表?

标签: mysqlselectjoincompare

解决方案


一个简单的选择左连接两个表,并过滤第二个表没有数据的行应该会给出您想要的结果。

SELECT *
FROM table1 a
LEFT JOIN table2 b
    ON a.number = b.number AND a.name = b.name
WHERE b.id IS NULL

推荐阅读