【发布时间】:2013-10-26 09:13:48
【问题描述】:
我有以下问题。
SELECT parent.id AS 'id', parent.CA_NAME as 'name', node.level AS 'level', midpoint.level AS 'midpointlevel', SUM(ad.id IS NOT NULL) AS 'count'
FROM
category AS parent,
category AS midpoint,
category AS node
LEFT JOIN ad ON ad.id=node.id
AND ad.status='A'
WHERE (node.`LEFT` BETWEEN parent.`LEFT` AND parent.`RIGHT`)
AND (node.`LEFT` BETWEEN midpoint.`LEFT` AND midpoint.`RIGHT`)
AND midpoint.id='1'
GROUP BY parent.id
HAVING IF(midpoint.level=0, node.level < 2, node.level > 0)
ORDER BY parent.id
我不想选择midpoint.level AS 'midpointlevel' 部分,但如果我删除它,having 子句会给出错误提示:错误代码:1054。'having 子句'中的未知列'midpoint.level'。谁能帮我删除不需要的选择部分。
【问题讨论】:
-
这是一个非常好的问题,我期待着阅读适当的答案。
-
每个组中有多个可能的
midpoint.level值。你想用哪个?
标签: mysql sql having-clause