作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从上表 (order_status_data2) 中检索唯一值。我想获取包含以下字段的最新订单:id、order_id 和 status_id。高 id 字段值表示最近的项目,即
4 - 56 - 4
8 - 52 - 6
7 - 6 - 2
9 - 8 - 2
等
我尝试了以下查询但没有得到想要的结果,尤其是 status_id 字段:
select max(id) as id, order_id, status_id from order_status_data2 group by order_id
这是我得到的结果:
我将如何制定查询以获得所需的结果?
最佳答案
SELECT o.id, o.order_id, o.status_id
FROM order_status_data2 o
JOIN (SELECT order_id, MAX(id) maxid
FROM order_status_data2
GROUP BY order_id) m
ON o.order_id = m.order_id AND o.id = m.maxid
在您的查询中,您没有对 status_id
施加任何约束,因此它从组中的任意行中选取它。选择 max(id)
不会使其从恰好具有该值的行中选择 status_id
,您需要一个连接来为所有非聚合列。
关于mysql - 从具有相似 ID 数据字段的表中选择唯一数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17422320/
我是一名优秀的程序员,十分优秀!