2017年9月12日 星期二

[SQL Server] Select Where (Select...) 兩個資料表串聯


通常串聯兩個表格會用 Join 語法,但也有另外種方式可以將表格串聯
而這種SQL語法中包含另一個SQL語法 稱作子查詢架構

Select 欄位A1, 欄位A2
From TableA
Where 欄位A2 比較運算元 (Select 欄位B2 From TableB Where 條件)

通常會用在需要篩選的 表格A, 但需要參照 表格B的欄位條件(通常當中欄位A2,欄位B2 是一樣定義的欄位)



ex
TableA
  商品代號     水果  
 1     A0001   香蕉
 2    A0002   蘋果
 3    A0003   芒果

TableB  
  商品代號     產地  
 1     A0001   台灣  
 2    A0002   美國 
 3    A0003   台灣  

今天如果是要篩選出生產地為台灣的水果

語法:
Select 商品代號, 水果 From TableA
Where 商品代號 In (Select 商品代號 From TableB Where 產地='台灣')

結果:
  商品代號     水果  
 1     A0001   香蕉
 2    A0003   芒果

----------------------------------------------------

那麼稍微變換 子查詢的寫法

ex
承TableA,TableB

語法:
Select 水果 From TableA
Where (Select 產地 From TableB Where TableA.商品代號=TableB.商品代號 )='台灣'

紅字部分是不是很像 Join 語法中 On 後面的串接表格的方式

同樣這也是可以達到同樣的篩選結果

沒有留言:

張貼留言