我有一个看起来像这样的表:
它有产品。有些通过“父ID”与父产品相关。
我需要一个只会选择没有任何子项的父产品的查询。例如“Product-4”。
任何人都可以帮我吗?这似乎是一个非常简单的解决方案。
答案 0 :(得分:1)
你可以试试这个: -
ParentId = 0
ParentId
此处为Full Query,
Select * from Table_Name
Where ParentId = 0
AND Id NOT IN (Select DISTINCT ParentId from Table_Name WHERE ParentId NOT NULL)
答案 1 :(得分:0)
我想说的是:SELECT * FROM parents WHERE (SELECT COUNT(*) FROM products WHERE products.parent_id = parents.id) = 0
但不确定,现在无法测试。
答案 2 :(得分:0)
我没有意识到这张桌子与自己有关系。
以下内容应该有效:
SELECT *
FROM my_table m1
WHERE NOT exists
(
SELECT *
FROM my_table m2
WHERE m1.id = m2.parent_id)
AND parent_id = 0;
这不应该选择孩子。