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 

結果以下,查詢結果集返回兩表的全部行。
在這裏插入圖片描述

相關文章
相關標籤/搜索