我有一个包含以下各列的表:
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