SQL我有两个用外键连接的表。我想从第二张表中找出丢失的id

时间:2017-10-02 14:50:24

标签: mysql

这两个表是用外键连接的。我在info中插入一些值,但我需要找出哪些值没有插入到名称表的信息中。 我的意思是找到name.id不等于info.sid

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

规范方法是反连接模式。

查找table1中的行,其中id列中的值在table2中没有匹配的行(即table2中没有与fk_id值匹配的行)

 SELECT t1.id
   FROM table1 t1
   LEFT
   JOIN table2 t2
     ON t2.fk_id = t1.id
  WHERE t2.fk_id IS NULL

此查询基本上表示返回table1中的所有行以及table2中的任何匹配行,但是 exclude 行,我们在table2中找到了匹配的行。让我们只使用table1中没有表2匹配的行。

这只是其中一种方法的演示。还有一些其他查询模式将返回相同的结果。