sql – 指定从GROUP BY子句返回的记录
|
编辑澄清 我可能误解了GROUP BY的使用,所以我只是重新解释我的问题而不假设如何解决问题: 我有一个term_ids列表和一个包含对象的表(在其他字段中有一个object_id PK和term_id作为FK),我需要为每个提供的term_id提取具有最高object_id的对象.这样做的正确方法是什么? 原始问题 我确定我遗漏了一些显而易见的东西,但我无法弄清楚如何指定一个带有GROUP BY的查询将返回哪条记录.默认情况下,GROUP BY返回组中的第一条记录,我可以在不使用子查询的情况下获取最后一条记录吗? 基本查询返回第一条记录:
这是有效的,但有一个子查询
这是语法错误
最佳答案
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.
那样的东西? (编辑:东莞站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- PHP如何在url中指定“返回一个目录级别”
- 如何在cakephp中对自定义查询结果进行分页
- php – 用于从每个用户获取最后一条消息的数据库查询(如fac
- python – 更新主键Django MySQL
- java – 使用Eclipse Link在JPA中映射Joda Time“Period”的
- php mysql致命错误:调用未定义的函数mysql_connect()
- mysql – 如何在Hibernate中为每个公司创建一个customerNum
- 当表结构在MySQL中不匹配时使用INSERT INTO SELECT
- SQLyog 使用介绍
- 在Mac OSX上安装MySQL libmysqlclient-dev和UDF文件
