iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
Software Development

新手村的練功筆記系列 第 18

Day 18 SQL語法 - INNER JOIN

  • 分享至 

  • xImage
  •  

今日練習範圍
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 是個相當實用的功能
我們要好好的學起來

剩下更多好用的語法我們明天繼續


上一篇
Day 17 SQL 語法複習與應用
下一篇
Day 19 SQL - OUTER JOIN
系列文
新手村的練功筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言