• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    SQL Server 2005中的外联结用法

    发布者: 404号房间 | 发布时间: 2025-6-18 14:21| 查看数: 87| 评论数: 0|帖子模式

    SQL Server 2005中的外联结用法一:
    有两个表:学生表,学生选课表,表中数据为:
    学生表:

    学生选课表:

    要查看所有学生的选课信息,
    标准的SQL语句,外联结语句为
    1. use stu_course
    2. select L.sno,sname,ssex,sage,sdept,cno,grade
    3. from student L,sc
    4. where L.sno=sc.sno(*)
    复制代码
    理论上的结果为:

    但是,在SQLServer2005中运行会出现错误,错误提示为:
    消息 102,级别 15,状态 1,第 4 行
    '*' 附近有语法错误。
    在SQLServer2005中,相应的T-SQL语句应该为:
    1. use stu_course
    2. select L.sno,sname,ssex,sage,sdept,cno,grade
    3. from student L left join sc
    4. on L.sno=sc.sno
    复制代码
    运行结果为:


    同时,还可以在on后面再加上where限定条件:
    1. use stu_course
    2. select L.sno,sname,ssex,sage,sdept,cno,grade
    3. from student L left join sc
    4. on L.sno=sc.snowhere L.sno in(95001,95002,95003,95004)
    复制代码
    这时,运行结果为:

    以上这个例子是左外联结查询,即:结果表中包含第一个表中所有满足条件的
    记录,如果在第二个表中有满足联结条件的记录,则返回相应的值,否则返回NULL
    SQLServer2005中的外联结查询用法(续):
    有三个表:学生表,学生选课表,课程表,表中数据为:
    学生表:

    学生选课表:

    课程表:

    左联结查询举例:
    1. use stu_course
    2. select L.sno,sname,ssex,sage,sdept,cno,grade
    3. from student L left join sc
    4. on L.sno=sc.sno
    复制代码
    结果为:



    右联结查询举例:
    1. use stu_course
    2. select sno,course.cno,course.cname
    3. from sc right join course
    4. on sc.cno=course.cno
    复制代码
    结果为:


    全外联结查询举例:
    1. use stu_course
    2. select sno,course.cno,course.cname
    3. from sc full join course
    4. on sc.cno=course.cno
    复制代码
    结果为:


    如果将这个全外联中的左右两个表交换顺序:
    1. use stu_course
    2. select sno,course.cno,course.cname
    3. from course full join sc
    4. on sc.cno=course.cno
    复制代码
    结果仍为:

    由以上例子可以看出:
           对于左外联结,结果表中包含第一个表中所有满足条件的记录,如果在第二个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;
           对于右外联结,结果表中包含第二个表中所有满足条件的记录,如果在第一个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;
           对于全外联结,结果表中包含两个表中所有满足条件的记录,如果在其中一个表中有满足联结条件的记录,则返回相应的值,否则返回NULL;

    来源:https://www.jb51.net/article/53509.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表