【0039】SQL查询--连接查询--自表连接

查询同时选修了编号为001和002课程的同学学号,姓名,课程号和相应成绩,并按学号排序输出。


SELECT 
	student.studentNo,
	student.studentName,
	score1.courseNo,
	score1.score,
	score2.courseNo,
	score2.score
FROM 
	student 
INNER JOIN score AS score1 ON score1.courseNo='001' AND  student.studentNo = score1.studentNo 
INNER JOIN score AS score2 ON score2.courseNo='002' AND student.studentNo = score2.studentNo 


等价于

SELECT 
	student.studentNo,
	student.studentName,
	score1.courseNo,
	score1.score,
	score2.courseNo,
	score2.score
FROM 
	student,
	score AS score1,
	score AS score2
WHERE 
	score1.courseNo='001' 
AND score2.courseNo='002'
AND student.studentNo = score1.studentNo
AND student.studentNo = score2.studentNo 


另一种方法就是查询表

SELECT 
	student.studentNo,
	student.studentName,
	score1.courseNo,
	score1.score,
	score2.courseNo,
	score2.score
FROM 
	student
INNER JOIN (SELECT * FROM score WHERE courseNo='001') AS score1 ON student.studentNo = score1.studentNo
INNER JOIN (SELECT * FROM score WHERE courseNo='002') AS score2 ON student.studentNo = score2.studentNo


SELECT 
	student.studentNo,
	student.studentName,
	score1.courseNo,
	score1.score,
	score2.courseNo,
	score2.score
FROM 
	student,
	(SELECT * FROM score WHERE courseNo='001') AS score1,
	(SELECT * FROM score WHERE courseNo='002') AS score2
WHERE 
	student.studentNo = score1.studentNo AND student.studentNo = score2.studentNo





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值