zoukankan      html  css  js  c++  java
  • SQL Server 表连接

    数据库操作中,我们需要的结果可能在两张表甚至多张表中,这时候就需要表连接操作,多表查询中的各个表之间的字段会存在连接,比如主外键关联,可以使用主外键来关联每张表。表连接方式有以下几种:

    1. JOIN: 如果表中有至少一个匹配,则返回行
    2. LEFT JOIN(左连接): 即使右表中没有匹配,也从左表返回所有的行
    3. RIGHT JOIN(右连接): 即使左表中没有匹配,也从右表返回所有的行
    4. FULL JOIN(全连接): 只要其中一个表中存在匹配,就返回行

    下面用两个表演示下上面4种连接方式,两表数据为:
    在这里插入图片描述
    1. JOIN连接:如果表中有至少一个匹配,则返回行
    执行SQL语句:

    	  SELECT 
    	    stu.ID,
    	    stu.StudentID,
    	    stu.StudentName,
    	    sco.ID,
    	    sco.Score,
    	    sco.StudentID      
    	  FROM [BlogDemo].[dbo].[Student] stu
    	  Join [BlogDemo].[dbo].[Score] sco On sco.StudentID=stu.StudentID
    

    结果如下,查询结果集只返回两表匹配StudentID字段相同行。
    在这里插入图片描述

    2.LEFT JOIN(左连接): 即使右表中没有匹配,也从左表返回所有的行
    执行SQL语句:

      SELECT 
    	stu.ID,
    	stu.StudentID,
    	stu.StudentName,
    	sco.ID,
    	sco.Score,
    	sco.StudentID      
      FROM [BlogDemo].[dbo].[Student] stu
      Left Join [BlogDemo].[dbo].[Score] sco On sco.StudentID=stu.StudentID
    

    结果如下,查询结果集只返回右表所有行,左表只返回与右表匹配行。
    在这里插入图片描述

    3. RIGHT JOIN(右连接): 即使左表中没有匹配,也从右表返回所有的行
    执行SQL语句:

      SELECT 
         stu.ID,
         stu.StudentID,
         stu.StudentName,
         sco.ID,
         sco.Score,
         sco.StudentID      
      FROM [BlogDemo].[dbo].[Student] stu
      Right Join [BlogDemo].[dbo].[Score] sco On sco.StudentID=stu.StudentID
    

    结果如下,查询结果集只返回左表所有行,右表只返回与左表匹配行。
    在这里插入图片描述

    4. FULL JOIN(全连接): 只要其中一个表中存在匹配,就返回行
    执行SQL语句:

       SELECT 
    	stu.ID,
    	stu.StudentID,
    	stu.StudentName,
    	sco.ID,
    	sco.Score,
    	sco.StudentID      
      FROM [BlogDemo].[dbo].[Student] stu
      FULL Join [BlogDemo].[dbo].[Score] sco On sco.StudentID=stu.StudentID
    

    结果如下,查询结果集返回两表的所有行。
    在这里插入图片描述

  • 相关阅读:
    解决chrome浏览器无法得到window.showModalDialog返回值的问题
    Javascript 中 null、NaN和undefined的区别
    Windows Server 2003 asp网页不能访问的常见问题
    关于SQLServer无法对数据库'XXX'执行删除,因为它正用于复制。错误:'3724' 的解决方案
    关于Gridview激发了未处理的事件“RowDeleting”错误的处理
    ASP.NET中实现文件下载功能
    C#中ref和out的作用和区别
    关于Pascal(帕斯卡)以及Camel(驼峰)命名法
    期末作业验收
    SDN第五次上机作业
  • 原文地址:https://www.cnblogs.com/wangqilong/p/10088346.html
Copyright © 2011-2022 走看看