mysql查询部门及其所有⼦部门列表_多表查询样例数据库:(来源传智播客)
表:emplatin1是什么编码
表:dept
连接查询
内连接查询
隐式内连接
使⽤where条件消除⽆⽤数据
查询员⼯表的名称,性别。部门表的名称
select t1.NAME 姓名, t1.gender 性别, t2.NAME 部门 from emp t1,      dept t2 where t1.dept_id = t2.id;
显式内连接
语法:
select 字段列表  from 表名1 join 表名2  on 条件
例⼦:
SELECT * FROM emp          INNER JOIN dept                    ON emp.dept_id = dept.id;
外链接查询
左外连接
查询的是左表所有数据以及其交集部分。
语法:
select 字段列表 from 表1        left [outer] join 表2                on 条件;
例⼦:
default addinf是什么
-- 查询所有员⼯信息,如果员⼯有部门,则查询部门名称,没有部门,则不显⽰部门名称 SELECT t1.*, t2.name FROM emp t1          LEFT JOIN dept t2本地测试php源码
右外连接
查询的是右表所有数据以及其交集部分。
语法:
select 字段列表 from 表1          right join 表2                    on 条件;
例⼦:
随机数表应用SELECT * FROM dept t2          RIGHT JOIN emp t1                    ON t1.dept_id = t2.id;
全外连接
查询的是右表所有数据以及其交集部分。(mysql没有full outer join,⽤union代替)
语法:(分别将左右外连接的结果取并集)
select 字段列表 from 表1          right join 表2                    on 条件; union select 字段列表 from 表1          left join 表2                    on 条件;
例⼦:
SELECT t1.*, t2.name FROM emp t1          LEFT JOIN dept t2                    ON t1.dept_id = t2.id union SELECT t1.*, t2.name FROM emp t1          right JO
总结
1. 内连接:查询的是两表交集部分。
1. 隐式内连接:⽆join语句,仅⽤where判断
2. 显式内连接:使⽤inner join … on
2. 外连接
1. 左外连接:查询的是左表所有数据以及其交集部分。
二维数组长度怎么看
2. 右外连接:查询的是右表所有数据以及其交集部分。
3. 全外连接:两表并集
⼦查询
⼦查询的结果是单⾏单列
mysql语句多表查询将查询结果当成⼀个值
例:
-- 查询⼯资最⾼的员⼯信息 SELECT * FROM emp WHERE emp.salary = (    SELECT MAX(salary)    FROM emp); -- 查询员⼯⼯资⼩于平均⼯资的⼈ SELECT * F
⼦查询的结果是多⾏单列
使⽤关键字关键字:in
例:
-
- 查询'财务部'和'市场部'所有的员⼯信息 SELECT * FROM emp WHERE dept_id IN (    SELECT id    FROM dept    WHERE NAME = '财务部'        OR NAME = '市
⼦查询的结果是多⾏多列
将查询结果当成⼀个表
例:
-- 查询员⼯⼊职⽇期是2011-11-11⽇之后的员⼯信息和部门信息 -- ⼦查询 SELECT * FROM dept t1,      (SELECT *      FROM emp      WHERE emp.join_date > '2
总结
1. ⼦查询是⼀个值(将⼦查询结果看成⼀个值)
2. ⼦查询是⼀个列(⽤in关键字判断是否满⾜)
3. ⼦查询是⼀个表(将⼦查询结果看成⼀个新表,起⼀个别名)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。