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

idCat, idParent, Des


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

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

SELECT Des FROM Table HAVING COUNT (idCat=idParent) = 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

10-06 13:43