iT邦幫忙

2022 iThome 鐵人賽

DAY 8
0
自我挑戰組

資料庫二年級:練習AdventureWorks範例資料庫系列 第 8

[第八天]取代子查詢的是...

  • 分享至 

  • xImage
  •  

複習昨天的子查詢兩步驟:
[第一層]就是先設立出某一範圍,
[第二層]再從這個設定好的範圍作查找的工作。

再我們一起認識我心目中的酷東西-子查詢後,
今天要一起來看比酷東西更好用的工具,


是:
JOIN!!
(什麼~說來說去又回到JOIN?)

用JOIN取代子查詢

「用JOIN取代子查詢」就是公司前輩對我的叮嚀,
根據他的描述,90%以上的子查詢都是能夠被JOIN取代的,
我們來試試!

上面的語法改成使用JOIN會是:

SELECT P.ProductID, P.Name 
FROM [Production].[Product] P 
JOIN [Sales].[SalesOrderDetail] S ON P.ProductID = S.ProductID

https://ithelp.ithome.com.tw/upload/images/20220911/20152049vR726aosUc.jpg
這次試著加上distinct排除重複值,所以變成:

SELECT distinct P.ProductID, P.Name 
FROM [Production].[Product] P 
JOIN [Sales].[SalesOrderDetail] S ON P.ProductID = S.ProductID

https://ithelp.ithome.com.tw/upload/images/20220911/20152049GqJS6edeTg.jpg

這樣的結果
應該會跟昨天一樣。

這裡我們至少能先確定子查詢是可以被JOIN取代的,
兩種不同的語法,
得到的結果(看起來)卻相同,
那我不禁想問:
兩者之間有沒有差別?

明天我們來看看
兩層的子查詢,
之後我們再來研究跟我們花了好多天的JOIN
究竟有沒有不同吧!


上一篇
[第七天]兩步驟寫出子查詢
下一篇
[第九天]一層又一層的子查詢
系列文
資料庫二年級:練習AdventureWorks範例資料庫30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言