多表查询内连接以及外连接
多表查询-内连接
分为两种查询方式:
1.隐式内连接:使用where条件消除无用的数据
咧如:
SELECT -- 查询员工表的名称,性别,部门表的名称 t1.`NAME`,-- 查询员工名称 t1.gender,-- 查询员工性别 t2.`NAME`-- 查询部门表名称 FROM emp1 t1,-- 给员工表起别名 dept t2-- 给部门表起别名 WHERE t1.dept_id = t2.id;-- 员工表的dept_id = 部门表的id
2.显示内连接
语法:select字段列表 from 表名1 [inner] join 表名2 on 条件;
咧如:
-- 显示内连接查询 SELECT * -- 全部的意思 FROM emp1 -- 表名1 JOIN -- 显示内连接查询关键字 dept -- 表名2 ON emp1.dept_id = dept.id; -- 员工dept.id = 部门的id
3.内连接查询:(思维逻辑)
1.从哪些表中查询数据
2.条件是什么
3.查询哪些字段
多表查询-外连接
分为两种查询:
1.左外连接
语法:select 字段列表 from 表1 left [outer] join 表2 on 条件;
作用:查询的是左表所有数据以及其交集部分
-- 左外连接-- 查询所有员工信息,如果员工有部门则显示部门信息,没有部门则显示null SELECT t1.*,t2.`NAME`-- 查询员工的所有信息 以及 部门表名称 FROM emp1 t1 -- 表1 LEFT JOIN dept t2 -- 表2 ON t1.dept_id = t2.id; -- 相等
2.右外连接
语法:select 字段列表 from 表1 right [outer] join 表2 on 条件;
作用:查询的是右表所有数据以及其交集部分
-- 右外连接(主查右边的表) SELECT t1.*,t2.`NAME` FROM emp1 t1 RIGHT JOIN dept t2 ON t1.dept_id=t2.id;

浙公网安备 33010602011771号