2017-10-11 99 views
1

我有兩個表:agencieslessons獲取10條記錄有最近的相關元素

  • 一個機構可以有很多經驗教訓。
  • 一堂課只屬於一個機構。
  • 一節課有日期。

我想得到10個機構(或只是他們的ID)擁有最近的經驗教訓。換句話說,我希望由他們的課程訂購的機構僅限於10個機構。

我嘗試了各種查詢order bygroup by但我卡住了。我試圖寫的一切都是荒謬的。下面是我想的第一件事:

SELECT 
    agency_id 
FROM lessons 
GROUP BY agency_id 
ORDER BY start_at; 

,因爲失敗:

列「lessons.start_at」必須在GROUP BY出現子句或聚合函數中使用

我想我理解爲什麼。但是我迷路了,我不知道如何解決這個問題。我應該從哪裏開始?

回答

4

order by和選擇列表項必須是group by子句或聚合函數的一部分。你可以根據最大(即最後一個)排序課程日期:

SELECT agency_id 
FROM  lessons 
GROUP BY agency_id 
ORDER BY MAX(start_at) DESC 
LIMIT 10