码迷,mamicode.com
首页 > 数据库 > 详细

sql-2

时间:2015-10-23 06:43:58      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:

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;//这里的字段名可以相同,但是它们又将作为一张新的表,所以不建议字段名一样

 

 

技术分享

sql-2

标签:

原文地址:http://www.cnblogs.com/anwser-jungle/p/4903261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!