建议MySQL查询

时间:2012-04-13 10:47:19

标签: mysql sql

我有一个包含3个字段的表。

ID    Name     ParentID     Active
1     A        0            1
2     B        0            1
3     C        2            1

现在,我想要一个查询,其中是否有ParentID>行0并激活,然后跳过其父ID(2)的行。

请建议单个MySQL查询来实现此目的。

谢谢你, Khuram

编辑:谢谢大家,终于解决并标记了正确答案。

4 个答案:

答案 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