https://www.cnblogs.com/poloyy/category/1683347.html
前言
有哪些多表查询
- cross join:交叉连接
- inner join:内连接
- left join:左外连接
- right join:右外连接
- union、union all:全连接
多表查询的区别
查询类型 | 简述 | 图表 |
inner join |
获取两个表中字段相互匹配关系的记录 即两表记录都不为null才会返回 |
|
left join |
获取左表所有记录 右表为空的字段补null |
|
right join |
获取右表所有记录 左表为空的字段补null |
|
union | 获取左右表所有记录 | |
cross join | 两张表的笛卡尔积 |
执行sql
后面详细讲每种多表查询的时候,会用到这些数据表和数据;先跑一跑创建下哦!
DROP TABLE IF EXISTS `emp`; CREATE TABLE `emp` ( `id` int(11) NOT NULL COMMENT '员工编号',`name` varchar(255) CHaraCTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT 员工姓名11) 部门编号leader` 直属领导id是否在职 1在职 0离职PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; INSERT INTO `emp` VALUES (1,张三丰',0,1); font-weight: bold">1); 2,1)">张无忌3,1)">小龙女4,1)">小白菜5,1)">韦小宝6,1)">令狐冲7,1)">东方不败8,1)">任我行9,1)">李寻欢); `dept`; `dept` ( `id` 部门id部门名称 Compact; INTO `dept` 销售部信息技术部财务部有关部门');