此篇文章同步發表於個人部落格
為什麼拆開了!又要結合~你真的很野小,雖然只是把地區編號不重複的查詢出來,並補上資料,拆成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有以下幾個模式
明天一一來為大家介紹