自连接 实例

来源:互联网 发布:淘宝的外卖叫什么 编辑:程序博客网 时间:2024/06/11 10:09
SELECT * FROM student_grade;

select t1.num,t1.name,t1.chinese,t2.math,t3.english from 
(SELECT a.num,a.name,a.sex,b.grade as chinese FROM student_grade as a
inner join student_grade as b 
on a.num = b.num and a.course = b.course
where b.course = '语文') as t1,

(SELECT a.num,a.name,a.sex,b.grade as math FROM student_grade as a
inner join student_grade as b 
on a.num = b.num and a.course = b.course
where b.course = '数学') as t2,

(SELECT a.num,a.name,a.sex,b.grade as english FROM student_grade as a
inner join student_grade as b 
on a.num = b.num and a.course = b.course
where b.course = '英语') as t3

where t1.num = t2.num and t2.num = t3.num;


原表

101        张三        男         语文        81201        张三        男         数学        82301        张三        男         英语        83402        李四        男         语文        71502        李四        男         数学        72602        李四        男         英语        73703        小红        女         语文        74803        小红        女         数学        75903        小红        女         英语        761004        小明        男         语文        841104        小明        男         数学        851204        小明        男         英语        86

效果

01        张三        81828302        李四        71727303        小红        74757604        小明        848586
原创粉丝点击