SQL使用null连接查找缺少的记录

时间:2013-11-26 22:56:04

标签: mysql sql

我有一个名为“containers”的表,其中包含指定层次结构的parent_id子句。

TABLE containers {
    id
    parent_id
    name
}

由于没有设置外键,我试图找到已删除的父容器而不更新子项,告诉他们将parent_id设置为NULL

SELECT * FROM container c
RIGHT JOIN container c2 ON c2.parent_id = c.id
WHERE c.id IS NULL AND c2.parent_id IS NOT NULL

什么是正确的查询?

1 个答案:

答案 0 :(得分:2)

你可能想要做这样的事情(假设id是PK或NOT NULL):

SELECT
  parents.id
FROM
  container children
    LEFT JOIN
  container parents ON (parents.id = children.parent_id)
WHERE
  parents.id IS NULL;