我有一个包含3个字段的表。
ID Name ParentID Active
1 A 0 1
2 B 0 1
3 C 2 1
现在,我想要一个查询,其中是否有ParentID
>行0并激活,然后跳过其父ID(2)的行。
请建议单个MySQL查询来实现此目的。
谢谢你, Khuram
编辑:谢谢大家,终于解决并标记了正确答案。
答案 0 :(得分:2)
这应该有效:
select * from test where id not in ( select parent_id from test where parent_id > 0 and active = 1 );
答案 1 :(得分:1)
也许是这样的:
SELECT * FROM Table1 WHERE (NOT ParentID > 0 AND Active=1) OR Active=0
答案 2 :(得分:1)
我不确定问题是否清楚。您的意思是读取其ID不在其行处于活动状态的父列中的所有行?如果是这样的话:
SELECT * FROM mytable
WHERE id NOT IN (
SELECT ParentID FROM mytable WHERE Active = 1
);
答案 3 :(得分:1)
SELECT t1.*
FROM tbl t1
LEFT JOIN tbl t2
ON t1.ID = t2.ParentID
AND t2.Active = 1
WHERE t2.id IS NULL