编辑澄清
我可能误解了GROUP BY的使用,所以我只是重新解释我的问题而不假设如何解决问题:
我有一个term_ids列表和一个包含对象的表(在其他字段中有一个object_id PK和term_id作为FK),我需要为每个提供的term_id提取具有最高object_id的对象.这样做的正确方法是什么?
原始问题
我确定我遗漏了一些显而易见的东西,但我无法弄清楚如何指定一个带有GROUP BY的查询将返回哪条记录.默认情况下,GROUP BY返回组中的第一条记录,我可以在不使用子查询的情况下获取最后一条记录吗?
基本查询返回第一条记录:
SELECT *
FROM wp_term_relationships
WHERE term_taxonomy_id IN (20,21,22)
GROUP BY term_taxonomy_id
这是有效的,但有一个子查询
SELECT *
FROM (
SELECT *
FROM wp_term_relationships
WHERE term_taxonomy_id IN (20,22)
ORDER BY object_id DESC
) wtt
GROUP BY term_taxonomy_id
这是语法错误
SELECT *
FROM wp_term_relationships
WHERE term_taxonomy_id IN (20,22)
ORDER BY object_id DESC
GROUP BY term_taxonomy_id
最佳答案