如何选择另一个表中没有匹配条目的行?

冷淡的840

我正在对数据库应用程序进行一些维护工作,但我发现,即使一个表中的值以外键的形式使用,但表上没有外键约束。

我正在尝试在这些列上添加FK约束,但是我发现,由于表中已经存在大量错误数据,这些错误数据已经被天真的纠正了,因此我需要查找那些行。匹配另一个表,然后将其删除。

我在网络上找到了一些此类查询的示例,但它们似乎都提供了示例而不是说明,而且我不明白它们为什么起作用。

有人可以向我解释如何构造一个查询,该查询返回另一个表中没有匹配项的所有行以及它在做什么,以便我可以自己进行这些查询,而不是对具有这种混乱的每个表运行SO没有FK限制?

阿达迪夫

这是一个简单的查询:

SELECT t1.ID
FROM Table1 t1
    LEFT JOIN Table2 t2 ON t1.ID = t2.ID
WHERE t2.ID IS NULL

关键点是:

  1. LEFT JOIN用来; 这将返回来自的所有行Table1,而不管其中是否有匹配的行Table2

  2. WHERE t2.ID IS NULL条款;这会将返回的结果限制为仅返回IDTable2为null的那些行,换句话说,没有Table2针对该ID的特定记录Table1Table2.ID对于Table1ID中与ID不匹配的所有记录,将以NULL的形式返回Table2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

MySQL:有没有一种方法可以加快左联接查找与另一个表中的行不匹配的行?

如何使用另一个表中没有匹配值的行来优化MySQL选择

从一个表中选择记录,而另一个表中没有两列

选择一个表中的所有列表与另一个表中的某些列表匹配的位置

PostgreSQL:选择所有具有与另一个表中的所有条目相对应的条目的类型

如何选择另一表中没有匹配条目的行,即使其中一个表为空

如何从一个表中选择与SQL Server中的另一个表完全匹配的所有记录?

PHP MySQL选择所有匹配的行并回显另一个表行

如何使用Laravel模型从另一个表中没有ID的表中选择记录?

如何从与另一个表中的所有值匹配的表中获取记录

如何选择一个表中存在但另一个表中没有的值?

如何从一个表中选择另一个表中没有外键的记录

如何通过查询另一个表中的数据选择一个表中的所有行

获取在另一个模型中具有条目的所有对象

django:如何使一个表的属性成为另一个表中条目的计数

MySql根据另一个表中的MAX值选择一个表中的所有行

如何选择在另一个表中具有全部或没有对应值的行?

根据与另一个SQL Server表的匹配更新列中的所有条目

选择不在另一个表中的行

如何在SQL中查找与另一个表匹配的表的行组?

在Excel中查找在另一个工作表中没有对应行的行

从一个表中选择所有记录并从另一个表中匹配记录

选择不属于另一个表中的条目的条目

如何从一个表中选择不匹配的行到另一个?

如何从一个表中删除与另一个表匹配的行?

SQL:选择与另一个表中的内容匹配的所有行

从与同一表中的另一个值匹配的行中选择一个值

查找另一个工作表匹配键中的所有行

从另一个相关表中获取每个条目的最大 ID