MySQL中的多表連線

2021-10-25 10:32:12 字數 2009 閱讀 2510

一、語法結構

使用乙個表在多個表中查詢資料;

where子句中寫連線條件;

二、等值連線

等值連線也被稱為簡單連線 (****** joins) 或內連線 (inner joins)。是通過等號來判 斷連線條件中的資料值是否相匹配。

查詢雇員 king 所在的部門名稱;

select d.department_name from employees e , departments d where e.dept_id = 	d.department_id and e.last_name = 『king』;
三、非等值連線

乙個非等值連線是一種不使用相等(=)作為連線條件的查詢。如!=、>、=、<=、

between and 等都是非等值鏈結的條件判斷;

一、建立 sal_level 表,包含 lowest_sal,highest_sal,level。

create table sal_level(lowest_sal int , highest_sal int , level varchar(10));
二、插入資料

三、查詢所有雇員的薪水級別。

select e.last_name , s.level from employees e , sal_level s where e.salary 	between s.lowest_sal and highest_sal ;
四、自連線

使用乙個表連線它自身的操作。

一、修改 employees 表,新增 manager_id 列;

alter table employees add manager_id int;
二、修改資料 oldlu 是 kevin 與 king 的經理;taylor 是 fox 的經理;

1.update employees set manager_id = 1 where last_name = 「king」 or 	last_name = 「kevin」;

2.update employees set manager_id = 3 where last_name = 「fox」;

三、查詢每個雇員的經理的名字以及雇員的名字。

select em.last_name , ew.last_name from employees ew , employees em where ew.manager_id = em.employees_id ;

MySQL中的多表連線

現有表r,s如下 笛卡爾積 select from r,s 結果 注 不需要任何條件。結果為兩張表函式相乘 3x3 9 連線型別 分為三種 交叉連線 內連線 外連線。交叉連線 cross join 沒有where子句的交叉連線將產生連線表的笛卡爾積。select from r cross join ...

mysql 的多表連線

1 select from a b 預設是笛卡爾積 2 內連線 兩者一樣 顯示內連線 select from a inner join b on 條件 隱式內連線 select from a,b where 條件 3 外連線 3.1 左外連線 select from a left outer joi...

mysql多表連線

現有表r,s如下 select from r,s 結果 注 不需要任何條件。結果為兩張表函式相乘 3x3 9 自連線 select e.empno,e.ename,m.empno,m.ename from emp e,emp m where m.mgr e.empno 分為三種 交叉連線 內連線 外...