mysql:如果第二个表中没有匹配的行,如何从第一个表中选择一行

pinkon5k  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(370)

表1(主键编号):
id-1,编号-123,姓名asd
id-2,编号-124,姓名asd
表2(编号可重复,id pk):
id-1,编号-123,姓名asd
id-2,号码-123,姓名das
id-3,编号-124,姓名rrr
id-4,编号-124,姓名asx
想要的输出:

124, asd

我必须比较第一个表中的行和第二个表中的行。
如果第1行不等于第2行中的每一行,其中 a.number = b.number 那我们应该执行 select * from table1 .
如果我们找到一个匹配的行(在表1和表2之间),那么我们不应该执行上面的select查询。
更新:我怎样才能比较3个这样的表呢?

nhaq1z21

nhaq1z211#

一个简单的select left将两个表连接起来,并对第二个表中没有数据的行进行过滤,应该会得到您想要的结果。

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

相关问题