通常串聯兩個表格會用 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 後面的串接表格的方式
同樣這也是可以達到同樣的篩選結果
沒有留言:
張貼留言