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;