这就是我的MySQL查询,这里的关键字order不起作用。无法弄清楚它出了什么问题。
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;