2023-12-09|閱讀時間 ‧ 約 3 分鐘

MySQL 基本語法 (十一) JOIN

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

資料表:

employee table

branch table

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

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

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

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

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

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

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

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


  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` ;
  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` ;



分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.