sql server 表链接

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

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

下面用两个表演示下上面4种链接方式,两表数据为:spa

 

 1. JOIN链接:若是表中有至少一个匹配,则返回行code

执行SQL语句:blog

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语句:ssl

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 

结果以下,查询结果集只返回右表全部行,左表只返回与右表匹配行。
在这里插入图片描述string

 

3. RIGHT JOIN(右链接): 即便左表中没有匹配,也从右表返回全部的行
执行SQL语句:class

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 

结果以下,查询结果集只返回左表全部行,右表只返回与左表匹配行。
在这里插入图片描述im

 

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 

结果以下,查询结果集返回两表的全部行。
在这里插入图片描述

相关文章
相关标签/搜索