在LIKE-TREE表中查询

时间:2013-05-18 13:43:20

标签: mysql sql select count

我有一个包含以下列的表:

idCat, idParent, Des

idCat是自动增量的,Des是用于描述,如果记录是父级,则idParent可以是“0”,如果是子级,则它可以具有父级的“idCat”值。

我需要对没有孩子的所有记录的SELECT“Des”进行查询,如下所示:

SELECT Des FROM Table HAVING COUNT (idCat=idParent) = 0

显然这个查询不起作用。

你能帮我吗?

2 个答案:

答案 0 :(得分:0)

这可以通过NOT IN,NOT EXISTS或LEFT JOIN来完成...... WHERE NULL - 后者通常是MySQL中表现最好的:

SELECT t1.Des FROM Table t1
LEFT JOIN Table t2 on t1.idCat = t2.idParent
WHERE t2.idParent IS NULL

答案 1 :(得分:0)

如果所有父项idParent字段为0或null,则使用此查询

SELECT Des FROM Table HAVING idParent = 0 OR idParent IS NULL

这将是有效的,但是使用大数据库会更慢;

SELECT Des FROM Table HAVING idParent NOT IN ( SELECT idCat FROM Table )