今日練習範圍
SQL Lesson 6: Multi-table queries with JOINs
https://sqlbolt.com/lesson/select_queries_with_joins
今天我們來談談INNER JOIN
當我們有兩筆資料分散在兩個資料表中
想要將他們合併查詢該怎麼做呢?
我們可以使用INNER JOIN
這個語法
使用INER JOIN
時我們需要給他一個參照的目標
通常是id的那個欄位
所以完整的使用語法如下
INNER JOIN another_table
ON self-table.id = another_table.id
或許這樣說會不太知道INER JOIN
的用途
但我們可以可以藉由實作來體會
因此我們開始今天的練習吧
第一題
我們要關聯左右兩張表格,得出每部電影分別在國內與國外的票房
我們先觀察一下左邊的表格有電影的名稱、導演、年份與片長的資訊
右邊的表格有評分、國內票房、國外票房
我們只需要將兩個表格關聯起來,就可以得到每部電影的國內、外票房數據
至於要怎麼關聯呢?
仔細觀察兩個表格是不是都有個id欄位呢?
右邊表格的Movie_id紀錄這該列數據是對應左邊表格的哪部電影
因此我們可以藉由`INNER JOIN ... ON ...```來完成查詢
第二題
接下來我們需要篩選出國外票房比國內票房好的電影
還記得我們先前怎麼在查詢的數據裡加上限制嗎?
沒錯 就是用WHERE + <condition>
接著第三題
將電影依照評分由高至低排序
相信藉由第二題的實作
你已經觀察到藉由INNER JOIN
出來的表格彷彿是一張真實存在的表格
我們可以對他做查詢、排序與篩選等原本SQL語法可以達到的功能
因此我們只要對評分做排序即可完成這題
今天學到了INNER JOIN
是個相當實用的功能
我們要好好的學起來
剩下更多好用的語法我們明天繼續