我有这个相当复杂的查询来抓取三张表中的数据,现在我希望它变得更加复杂(哦,亲爱的)!SQL查询选择除最大值以外的所有内容
我想最后发布的功能显示在它自己的页面部分,这很容易通过选择表中的最后一项。但是,对于复杂的查询(网站的主页),我希望能够不显示此功能。
我想union
以下查询到我以前的查询,但它没有返回正确的结果:
SELECT
features.featureTitle AS title,
features.featureSummary AS body,
features.postedOn AS dummy,
DATE_FORMAT(features.postedOn, '%M %d, %Y') AS posted,
NULL,
NULL,
staff.staffName,
features.featureID
FROM
features
LEFT JOIN staff ON
features.staffID = staff.staffID
WHERE features.postedOn != MAX(features.postedOn)
ORDER BY dummy DESC LIMIT 0,15
此查询将返回以下错误:
MySQL error: #1111 - Invalid use of group function
是有没有办法解决这个问题?
为什么使用features.postedOn AS dummy(假设通过命名为dummy,而不是使用它)而不仅仅是ORDER BY features.postedOn? – Stefan 2009-07-25 19:38:24
features.postedOn永远不会在网站上下文中使用*,它总是格式化的字符串'posted'。这是一个虚拟字符串,用于维护各种条目的顺序,因此它的名称为'虚拟'(因为'发布'的顺序会返回无意义的结果)。 – different 2009-08-05 16:18:38