Mysql encounters an error similar to "Every derived table must have its own alias ".
Every derived table must have its own alias
This statement means that each derived table must have its own Alias.
This error occurs when multiple tables are queried.
The result of the subquery is used as a derived table for the upper-level query during nested query. Therefore, the subquery result must have an alias.
Change the MySQL statement to select count (*) from (select * from ......) As total;
The problem is solved. Although only one alias "total" is added, this alias is required.
Select name1 name, java, jdbc, hibernate, total
From (select sc1.name name1, sc1.mark java
From student_course2 sc1
Where sc1.course = 'java') as,
(Select sc2.name name2, sc2.mark jdbc
From student_course2 sc2
Where sc2.course = 'jdbc ') as B,
(Select sc3.name name3, sc3.mark hibernate
From student_course2 sc3
Where sc3.course = 'hibernate ') as c,
(Select sc4.name name4, sum (sc4.mark) total
From student_course2 sc4 group by sc4.name) as d
Where name1 = name2 and name2 = name3 and name3 = name4 order by total ASC;
The result is correct:
+ ---------- + ------ + ----------- + ------- +
| Name | Java | jdbc | hibernate | total |
+ ---------- + ------ + ----------- + ------- +
| Wangwu | 40 | 30 | 20 | 90 |
| Lisi | 70 | 60 | 50 | 180 |
| Zhangsan |100 | 90 | 80 | 270 |
+ ---------- + ------ + ----------- + ------- +
3 rows in set (0.02 sec)