我有两个表:agencies
和lessons
。
我想让10个代理商(或他们的ID)获得最新课程。换句话说,我希望通过他们的课程订购的代理商仅限于10个代理商。
我尝试了order by
和group by
的各种查询但是我被卡住了。我试图写的一切都是荒谬的。这是我尝试的第一件事:
SELECT
agency_id
FROM lessons
GROUP BY agency_id
ORDER BY start_at;
失败是因为:
列“lessons.start_at”必须出现在GROUP BY子句中或用于聚合函数
我想我理解为什么。但我迷路了,我不知道如何解决这个问题。我应该从哪里开始?
答案 0 :(得分:4)
order by
和选择列表项必须是group by
子句或聚合函数的一部分。您可以根据最大(即最后一次)课程日期进行排序:
SELECT agency_id
FROM lessons
GROUP BY agency_id
ORDER BY MAX(start_at) DESC
LIMIT 10