0

我有这个查询(在 MySQL 中运行良好):

SELECT units.*, activity_logs.created_at 
FROM "units" left join activity_logs on units.id=activity_logs.unit_id 
GROUP BY units.id 
ORDER BY activity_logs.created_at desc

Postgres 给出了这个错误:

PG::Error: ERROR:  column "activity_logs.created_at" must appear in the GROUP BY clause or be used in an aggregate function

我知道 Postgres 在 SQL 方面是正确的,但我怎样才能得到我想要的呢?那是与所有单位表连接的每个单位的最新活动日志条目吗?

提前致谢!

  • 雅各布
4

1 回答 1

3

错误解释了它:您需要使用聚合函数来使这个确定性,例如:

SELECT units.*, max(activity_logs.created_at)
FROM "units" left join activity_logs on units.id=activity_logs.unit_id 
GROUP BY units.id 
ORDER BY max(activity_logs.created_at) desc;
于 2013-02-21T06:45:07.183 回答