作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
编辑澄清
我可能误解了 GROUP BY
的用法,所以我只是重新表述我的问题,而不对如何解决问题做出假设:
我有一个 term_id
列表和一个包含对象的表(其中有一个 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, 21, 22)
ORDER BY object_id DESC
) wtt
GROUP BY term_taxonomy_id
这是语法错误
SELECT *
FROM wp_term_relationships
WHERE term_taxonomy_id IN (20, 21, 22)
ORDER BY object_id DESC
GROUP BY term_taxonomy_id
最佳答案
SELECT *... GROUP BY
不应该工作。您的第一个示例有效是 MySQL 的一个古怪功能。
要使 GROUP BY 起作用,您的 SELECT 子句不能是 *
。它必须是 GROUP BY 列和“聚合”函数(如 COUNT
、SUM
等)的混合。
SELECT COUNT(*), some_column FROM... GROUP BY some_column
是预期的形式。
SELECT *
预计不会工作。
您想为每个 term_id 找到最高的 object_id。
SELECT MAX(term_id), object_id FROM some_table GROUP BY object_id
类似的东西?
关于sql - 指定要从 GROUP BY 子句返回的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2191518/
我是一名优秀的程序员,十分优秀!