mysql - MySQL按关键字排序不适用于从两个表的内部连接插入表
问题描述
这就是我的 MySQL 查询,关键字的顺序在这里不起作用。无法弄清楚它有什么问题。
insert into leaderboard
select student.student_name as name , sum(marks) as total
from marks inner join student on student.student_id = marks.student_id
group by marks.student_id order by total desc;
解决方案
您当前的插入并不遥远,但作为实践,您应该始终明确列出要插入的目标列,即使用此版本:
INSERT INTO leaderboard (name, total) -- or whatever the column names are called
SELECT s.student_name, SUM(m.marks)
FROM marks m
INNER JOIN student s ON s.student_id = m.student_id
GROUP BY s.student_id;
关于您在表中感知或不感知的顺序,请leaderboard
注意 SQL 表是根据无序数据集建模的。也就是说,SQL 表中实际上并没有任何固有的顺序。如果要按特定顺序查看数据,请在ORDER BY
查询时使用子句(而不是在插入时):
SELECT name, total
FROM leaderboard
ORDER BY total DESC;
推荐阅读
- html - 如何水平堆叠div?
- python - 无法在 Catalina、Macbook Pro (2017) 上下载 Python 3.7、64 位图形
- gradle - Gradle 多项目并行构建消耗 100% 的 CPU 时间
- javascript - 如何根据jQuery中另一个字段中的日期获取星期几
- android - 移除 onActivityResult 中的当前片段
- sql-server - 按日期排序很慢
- r - R:通过每次加1来完成下面的单元格
- python - PyQt5 tableView 显示底片为红色和 (x.xx)
- python - PonyORM 从类实体问题中检索对象
- c++ - 提升状态机语言 - 来自“动作”的“发布”事件