Mysql SQL查找连接为null的缺少的记录

Mysql SQL查找连接为null的缺少的记录,mysql,sql,Mysql,Sql,我有一个名为“containers”的表,其中包含一个指定层次结构的parent\u id子句 TABLE containers { id parent_id name } 由于未设置外键,我正在尝试查找已删除的父容器,而不更新子容器,以告诉它们将父容器id设置为NULL SELECT * FROM container c RIGHT JOIN container c2 ON c2.parent_id = c.id WHERE c.id IS NULL AND c2.p

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

TABLE containers {
    id
    parent_id
    name
}
由于未设置外键,我正在尝试查找已删除的父容器,而不更新子容器,以告诉它们将父容器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

什么是正确的查询?

您可能希望执行类似的操作(前提是id为PK或不为空):


几乎可以,但是一些“父级”也有空的父级\u id,因为它们是根容器。问题是“id”是否可以为NULL。
SELECT
  parents.id
FROM
  container children
    LEFT JOIN
  container parents ON (parents.id = children.parent_id)
WHERE
  parents.id IS NULL;