最初我需要建立一個查詢獲取sites
從最新article
(articles
放置在單獨的表中)的日期排序的一個表中。INNER JOIN請求中`GROUP BY`之前的`ORDER BY`?
我建立以下查詢:
SELECT *
FROM `sites`
INNER JOIN `articles` ON `articles`.`site_id` = `sites`.`id`
ORDER BY `articles`.`date` DESC
GROUP BY `sites`.`id`
我假設SELECT
和INNER JOIN
將獲取所有帖子和網站每一個通過的後下降相關聯,比ORDER BY
訂貨會結果日期比GROUP BY
將採取每個網站第一個職位,我會得到所需的結果。
但是我收到的MySQL錯誤#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GROUP BY
網站.
ID LIMIT 0, 30' at line 7
如果我把GROUP BY
以前ORDER BY
語句中的查詢工作,但它不會給我最新後爲每個站點。相反,結果將被排序後組合這不是我需要的事情(實際上,我可能更喜歡以另一種方式分組後)。
我讀了幾個非常相似的問題,但它們都與存儲在單個表中的數據相關,因此可以使用MAX
和MIN
函數。
我該怎麼做才能實現我所需要的?
您正在從'sites'中選擇行並通過'articles'過濾結果。是不是缺少的東西? – 2014-10-28 17:07:09
**#1054 - 'where子句**'中未知的列'articles.site_id',這是相當期待的,因爲MySQL不應該知道'articles'表是什麼。 – 2014-10-28 17:08:38
請從兩個表中選擇必填字段,而不是給*。然後通過操作將所有這些字段從sites.id開始。試試吧。我目前沒有在這裏的MySQL,所以不能在這裏嘗試。 – 2014-10-28 17:16:29