MySQL 基本語法 (十一) JOIN

閱讀時間約 2 分鐘

JOIN 連接 : 可以將2個表格連接在一起

資料表:

employee table

raw-image

branch table

raw-image

------------------------------------------------------------------------------------

  1. 取得所有部們經理的名字

ON 後面接條件,如果符合對等的條件就列出來

 SELECT * FROM `employee`
JOIN `branch`
ON `emp_id` = `manager_id` ;
raw-image

只取經理的員工id、名字、部門名稱

 SELECT `emp_id`, `name`, `branch_name`  FROM `employee`
JOIN `branch`
ON `emp_id` = `manager_id` ;
raw-image

如果2個表格名稱重複可以在屬性前面加上表格名稱

 SELECT `employee`.`emp_id`, `employee`.`name`, `branch`.`branch_name`  
FROM `employee`
JOIN `branch`
ON `employee`.`emp_id` = `branch`.`manager_id` ;


raw-image
  1. LEFT JOIN

當連接的時候,無論左邊的表格有沒有成立ON後面接的條件,都會回傳所有的資料

右邊的表格則是條件要成立,才會回傳資料,不成立則回傳NULL

`employee` LEFT JOIN `branch`

`employee` :左邊的表格, `branch` :右邊的表格

 SELECT `employee`.`emp_id`, `employee`.`name`, `branch`.`branch_name`  
FROM `employee`
LEFT JOIN `branch`
ON `employee`.`emp_id` = `branch`.`manager_id` ;
raw-image
  1. RIGHT JOIN

當連接的時候,無論右邊的表格有沒有成立ON後面接的條件,都會回傳所有的資料

左邊的表格則是條件要成立,才會回傳資料,不成立則回傳NULL

 SELECT `employee`.`emp_id`, `employee`.`name`, `branch`.`branch_name`  
FROM `employee`
RIGHT JOIN `branch`
ON `employee`.`emp_id` = `branch`.`manager_id` ;
raw-image



7會員
47內容數
這裡會放一些我寫過的 Leetcode 解題和學習新技術的筆記
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
SQL | SQL 語法基礎篇 (1)SQL 基本篇 - CRUD、運算子、內建函式
Thumbnail
avatar
Jeremy Ho
2023-10-03
MySQL與MongoDB:關聯式與非關聯式資料庫比較在現代資訊科技的浪潮下,資料庫管理系統扮演著舉足輕重的角色,決定著企業和開發者如何有效地儲存、查詢和操作數據。MySQL和MongoDB是兩種廣泛使用的資料庫,分別代表了傳統的關聯式資料庫(RDBMS)和新興的非關聯式資料庫(NoSQL)的典型。
Thumbnail
avatar
Kevin_malamute |凱文-馬拉穆
2023-08-15
[MySQL] Restore範例資料庫有了MySQL後,當然就要下指令來玩玩 能玩爆代表你有天賦,每一次爆炸你又能修復就是成長大躍進的時刻 但是看看你的資料庫空空如也,只有系統DB怎麼辦咧 還好網路上有很多善心人士願意分享範例資料庫供人使用 話不多說就來試試看吧  1. 先找到你要的範例資料庫 範例資料庫下載
Thumbnail
avatar
衣服子
2021-11-08
[MySQL] CentOS7 安裝 MYSQL 8.0網路隨便估狗都有一堆大神教學文,不過還是紀錄一下自己安裝的步驟 (2021.11.7)身為一個linux和資料庫菜雞只能乖乖腳踏實地一步一步來 準備好環境 (廢話) 1. 先準備好環境 (廢話) 我是用virtualbox起一個CentOS7的虛擬機詳細以參考以下網址,有非常詳盡的步驟
Thumbnail
avatar
衣服子
2021-11-08
MySQL GROUP_CONCAT 長度限制Laravel GROUP_CONCAT 出來的json格式錯誤,看起來是字串被截斷了,查了一下發現原來MySQL GROUP_CONCAT select出來的字串會有最大值的限制,預設是1024個字元。 1. 程式端解法:    DB::statement('SET GLOBAL group_c
avatar
Vic Lin
2021-10-08
MySQL DATE_SUBMySQL 取得現在日期半年前的日期: DATE_SUB(CURRENT_DATE(), INTERVAL 6 MONTH) 本筆記參考: https://www.w3schools.com/sql/func_mysql_date_sub.asp
Thumbnail
avatar
Vic Lin
2021-09-28
MySQL group_concat merge two column to json以下以Laravel為例,一般group_concat我們可能會這樣寫: E 但其實table_a_id, table_a_name可以merge成一個json,資料整理起來比較好看,可以改成這樣的寫法: E 最後response之前可以用php的json_decode把json string轉為o
avatar
Vic Lin
2021-05-14
MySQL group_concat with if condition有時候我們會需要只group concat某些條件,就可以像這樣寫: group_concat(DISTINCT IF(user.name != 'abc' AND b.b_id != c.c_id, c.name, NULL)) as d 符合這個條件的才給值,否則給null,由於group_co
avatar
Vic Lin
2021-05-12
avatar
Alan & Jane
2021-01-10
[Mysql]使用正規化篩選結果由於使用Python爬政府公開資訊進Mysql後,如果只想選取特定字串出來可以使用 WHERE 搭配 Like;但是當我們要尋找的字串非常多時,我們可以使用 REGEXP 的方式篩選,個人覺得比較有效率及程式不會太過冗長,如果有更好的作法也可以在下方回覆唷
Thumbnail
avatar
Justin
2020-02-03