mysql - 为什么在查询语句中添加 group by 后结果顺序发生了变化?
问题描述
数据库:MySQL 5.6
users
桌子:
| id | name |
| -- | ---- |
| 1 | A |
| 2 | B |
user_likes
桌子:
| id | user_id | star | created_at |
| -- | ------- | ---- | ------------------- |
| 1 | 1 | 2 | 2018-09-12 00:00:00 |
| 2 | 2 | 3 | 2018-09-12 00:00:00 |
查询 1
select u.name, ul.user_id
from users u, user_likes ul
where u.id = ul.user_id
order by ul.star desc, ul.created_at desc;
查询 2
select u.name, ul.user_id
from users u, user_likes ul
where u.id = ul.user_id
group by ul.user_id
order by ul.star desc, ul.created_at desc;
为什么group by ul.user_id
在这种情况下添加后结果顺序发生了变化?
那么想从中获取唯一的 user_id 记录user_likes
,怎么办?
解决方案
SELECT users.name , user_likes.user_id
FROM user
JOIN user_likes
ON user.id = user_likes.user_id
GROUP BY user.id
order by user_likes.star desc, user_likes.created_at desc;
最佳方式结果
推荐阅读
- python - 分配 n 行不同的值
- python - smtplib Python中的TLS和SSL有什么区别
- html - iframe 元素未按预期对齐
- c# - 处理 Svn C#,提交不显示/不做任何事情
- html - 如何增加父 div 的高度(具有指定的高度)以包含子级
- angularjs - 如何使 nv-file-select 上传器需要 Angular
- webpack - Webpack + Handlebars 自定义助手 - 不支持 require.extension
- sql - 如何制作“像任何“%element_in_array%”一样的字符串
- php - Apache,PHP7 错误:找不到脚本或无法统计
- angular - 如何实现 Facebook 的“最近登录”功能