MySQL多表查询语句
1.内连接查询
1.隐式内连接:使用where条件消除无用数据
例子:
SELECT * FROM emp,dept WHERE emp.dept_id=dept.id;
SELECT
t1.name,
t1.gender,
t2.name
FROM
emp t1,
dept t2
WHERE
t1.dept_id=t2.id;
2.显示内连接
语法:select 字段列表 from 表名1 [inner] join 表名2 on 条件
例子:
SELECT * FROM emp INNER JOIN dept ON emp.dept_id=dept.id;
SELECT * FROM emp JOIN dept ON emp.dept_id=dept.id;
2.外连接查询:
1.左外连接:
语法:select 字段列表 from 表1 left [outer] join 表2 on 条件;
查询的是左表所有数据以及其交集部分
例子:
SELECT t1.*,t2.name FROM emp t1 LEFT JOIN dept t2 ON t1.dept_id = t2.id;
2. 右外连接:
语法:select 字段列表 from 表1 right [outer] join 表2 on 条件;
查询的是右表所有数据以及其交集部分
例子:
SELECT t1.*,t2.name FROM dept t2 RIGHT JOIN emp t1 ON t1.dept_id = t2.id;