关于MySQL分组后显示数据的问题

超凶的233 2018-04-10 04:53:55
有一个orderitems表如下:
+-----------+------------+---------+----------+------------+
| order_num | order_item | prod_id | quantity | item_price |
+-----------+------------+---------+----------+------------+
| 20005 | 1 | ANV01 | 10 | 5.99 |
| 20005 | 2 | ANV02 | 3 | 9.99 |
| 20005 | 3 | TNT2 | 5 | 10.00 |
| 20005 | 4 | FB | 1 | 10.00 |
| 20006 | 1 | JP2000 | 1 | 55.00 |
| 20007 | 1 | TNT2 | 100 | 10.00 |
| 20008 | 1 | FC | 50 | 2.50 |
| 20009 | 1 | FB | 1 | 10.00 |
| 20009 | 2 | OL1 | 1 | 8.99 |
| 20009 | 3 | SLING | 1 | 4.49 |
| 20009 | 4 | ANV03 | 1 | 14.99 |
+-----------+------------+---------+----------+------------+
然后,我输入查询:
select order_item, order_num from orderitems group by order_item;
显示的是:
+------------+-----------+
| order_item | order_num |
+------------+-----------+
| 1 | 20005 |
| 2 | 20005 |
| 3 | 20009 |
| 4 | 20009 |
+------------+-----------+
最后,
我的疑问:为什么没有输出所有的order_num,而只是输出了一部分
...全文
874 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
卖水果的net 版主 2018-04-10
  • 打赏
  • 举报
回复
select order_item, order_num from orderitems group by order_item; 这里用的是分组, GROUP BY ; MySQL 支持这样的语法,如查列没有出现在 group by 列表中,也没有使用聚合函数,就会把非分组列中的第一行的值列出来。如果你换成 oracle 或 mssql 就该报错了。 我想,楼主是 不是要要 ORDER BY ,手误写成 group by 了。
听雨停了 2018-04-10
  • 打赏
  • 举报
回复
输出所有的order_num的话就应该是group by order_item,order_num了。但是结果为何是12对应的是2005,34对应的2009这个就不清楚了。

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧