标签:
1--联合查询:
左关联:以左为准----左边全有,右边没有的用NULL代替
select SI.StuId,SI.UserName,SI.Age,SC.StuId,SC.Scores,SC.Name from StuInfor SI left join Scores SC on SI.StuId=SC.StuId ;
右关联:以右为准----右边全有,左边没有的用NULL代替
select SI.StuId,SI.UserName,SI.Age,SC.StuId,SC.Scores,SC.Name from StuInfor SI right join Scores SC on SI.StuId=SC.StuId ;
inner:两者同时都有-----显示都有的
select SI.StuId,SI.UserName,SI.Age,SC.StuId,SC.Scores,SC.Name from StuInfor SI inner join Scores SC on SI.StuId=SC.StuId ;
2-------3张表的查询:
(select SI.StuId,SI.UserName,SI.Age,SC.StuId,SC.Scores,SC.Name from StuInfor SI inner join Scores SC on SI.StuId=SC.StuId )将他看成一张表并且打上括号
虽然联合查询的两张表的字段名称可以相同,但是当他作为新的一张表的时候字段名称必能相同,否则会报错:
-------------------------------------------------------------------------------------------------------------------------
解决方法:
新的一张表的字段名不能相同:
所以要改下前两张表的字段名称
1 select SP.StuId,SP.UserName,SP.Age,SP.Scores, 2 EC.Scores,EC.StuName from 3 (select SI.StuId,SI.UserName,SI.Age,SC.Id,SC.Scores,SC.StuName 4 from StuInfor SI inner join Scores SC 5 on SI.StuId=SC.Id ) SP 6 inner join EnglishScores EC 7 on SP.Scores=EC.Scores;//这里的字段名可以相同,但是它们又将作为一张新的表,所以不建议字段名一样
标签:
原文地址:http://www.cnblogs.com/anwser-jungle/p/4903261.html