香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > mssql2005 >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

SQL Server 2005中的外联结用法


时间:2020-11-10 14:08 作者:admin610456


SQL Server 2005中的外联结用法一:

有两个表:学生表,学生选课表,表中数据为:

学生表:

学生选课表:

要查看所有学生的选课信息,

标准的SQL语句,外联结语句为

use stu_courseselect L.sno,sname,ssex,sage,sdept,cno,gradefrom student L,scwhere L.sno=sc.sno(*)

理论上的结果为:

但是,在SQLServer2005中运行会出现错误,错误提示为:

消息 102,级别 15,状态 1,第 4 行
'*' 附近有语法错误。

在SQLServer2005中,相应的T-SQL语句应该为:

use stu_courseselect L.sno,sname,ssex,sage,sdept,cno,gradefrom student L left join scon L.sno=sc.sno

运行结果为:

同时,还可以在on后面再加上where限定条件:

use stu_courseselect L.sno,sname,ssex,sage,sdept,cno,gradefrom student L left join scon L.sno=sc.snowhere L.sno in(95001,95002,95003,95004)

这时,运行结果为:

以上这个例子是左外联结查询,即:结果表中包含第一个表中所有满足条件的

记录,如果在第二个表中有满足联结条件的记录,则返回相应的值,否则返回NULL

SQLServer2005中的外联结查询用法(续):

有三个表:学生表,学生选课表,课程表,表中数据为:

学生表:

学生选课表:

课程表:

左联结查询举例:

use stu_courseselect L.sno,sname,ssex,sage,sdept,cno,gradefrom student L left join scon L.sno=sc.sno

结果为:

右联结查询举例:

use stu_courseselect sno,course.cno,course.cnamefrom sc right join courseon sc.cno=course.cno

结果为:

全外联结查询举例:

use stu_courseselect sno,course.cno,course.cnamefrom sc full join courseon sc.cno=course.cno

结果为:

如果将这个全外联中的左右两个表交换顺序:

use stu_courseselect sno,course.cno,course.cnamefrom course full join scon sc.cno=course.cno

结果仍为:

由以上例子可以看出:

对于左外联结,结果表中包含第一个表中所有满足条件的记录,如果在第二个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;

对于右外联结,结果表中包含第二个表中所有满足条件的记录,如果在第一个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;

对于全外联结,结果表中包含两个表中所有满足条件的记录,如果在其中一个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)