我有這個相當複雜的查詢來抓取三張表中的數據,現在我希望它變得更加複雜(哦,親愛的)!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