iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 13
0
AI & Data

後端前進PostgreSQL系列 第 13

JOIN 資料表的結合

  • 分享至 

  • xImage
  •  

此篇文章同步發表於個人部落格


為什麼拆開了!又要結合~你真的很野小,雖然只是把地區編號不重複的查詢出來,並補上資料,拆成areas 資料表,感覺起來好像沒有什麼,但是如果去拆分csv原始檔 後面的
動物所屬收容所代碼名稱,就會感受到拆解出來可以結審很多空間。

但在拆解後面的資料前,我們先嘗試把兩張資料表結合再一起吧!雖然是結合起來,但並不是真的合成一張表,是用 JOIN這個陳述,查詢出來並不是建立一個資料表

先利用部分查詢的方式印出資料

SELECT area_pkid, subid, place, kind FROM adoption_gov_animals;

結果

只會有四個欄位,因為 地區代號 area_pkid 實在是很難一眼就知道內容是什麼,例如我是要查詢給 網站的前端畫面用的,會用JOIN 讓它帶出 areas 資料表想對應得縣市名稱

SELECT aga.area_pkid, a.name, aga.subid, aga.place, aga.kind 
FROM adoption_gov_animals AS aga LEFT JOIN areas AS a 
ON aga.area_pkid = a.id;

第一行 是要查詢部分欄位,欄位名稱前面多了 aga. 還有 a. 因為我們用 JOIN 必須告訴資料庫 這個欄位是哪一個表的欄位。 第二行 adoption_gov_animals AS aga 表示 adoption_gov_animals資料表 別名 用 aga表示 ,所以才會看到 aga.area_pkid 表示要顯示 adoption_gov_animals資料表 的 area_pkid。

第二行 來自哪個表 adoption_gov_animals 後方多了 LEFT JOIN 關鍵字後面又接著一直張資料表名稱 areas,別名設定為 a,因此看到這裡你應該可以理解,第一行 a.name 的意思了吧! 表示這個查詢SQL程式第二個欄位要顯示areas對應到的 name 資料。

第三行 設定這兩張資料表要用哪一個值當對應 在 ON 關鍵字後面設定adoption_gov_animals的area_pkid 對應 areas 資料表的 id。

結果

成功對應到資料!帶出 areas 資料表中的 name 顯示在第二個欄位。

JOIN 模式

JOIN有以下幾個模式

  1. JOIN
  2. LEFT JOIN
  3. RIGHT JOIN
  4. FULL OUTER JOIN
  5. CROSS JOIN

明天一一來為大家介紹


上一篇
整理資料表(二) 拆分資料表
下一篇
JOIN 介紹
系列文
後端前進PostgreSQL30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言