MySQL的关键字排序不适用于从两个表的内部联接插入到表中



这就是我的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;

最新更新