数据库
首页 > 数据库> > MySQL中多表查询的分类

MySQL中多表查询的分类

作者:互联网

##内连接查询:

1.内连接查询:

(1).隐式内连接:使用where条件消除无用的数据
	*例子:
	-- 查询所有员工信息和对应的部门信息

			SELECT * FROM emp,dept WHERE emp.`dept_id` = dept.`id`;
			
			-- 查询员工表的名称,性别。部门表的名称
			SELECT emp.name,emp.gender,dept.name 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 * FROM dept t2 RIGHT JOIN emp t1 ON t1.dept_id = t2.id;

3. 子查询:

标签:查询,dept,emp,MySQL,t1,中多表,id,SELECT
来源: https://blog.csdn.net/weixin_43517302/article/details/97611345