美文网首页
mysql基础5-关联查询&子查询

mysql基础5-关联查询&子查询

作者: D_w | 来源:发表于2021-11-24 15:00 被阅读0次
image.png

--内连接
-- 没有主从表之分,只会将两个表中相等的值列出在结果集中

查询员工编号(empno)为7788的员工姓名(ename)和所在部门的名称(dname)

empno=7788 ename =scott -->emp表
empno=7788 deptno=20 -->emp表 dname=RESEARCH -->dept

select ename,dname from emp inner join dept on emp.deptno=dept.deptno and empno=7788;

--左外连接
-- 主表、从表 left join 前面的是主表,后面的是从表,会遍历主表中的每一个条记录,

查询所有部门的名称(dname)和该部门对应的员工姓名(ename)

select * from dept left join emp on dept.deptno=emp.deptno;

查询所有员工的名称(dname)和员工所所在部门的名称(dname)

select * from emp left join dept on dept.deptno=emp.deptno;

--右外连接
-- 主表、从表 right join 前面的是从表,后面的是主表,会遍历主表中的每一个条记录,

查询所有部门的名称(dname)和该部门对应的员工姓名(ename)

select dname,ename from emp right join dept on dept.deptno=emp.deptno;

自连接

查询所有员工和他上级领导的姓名

select * from emp;

select e.ename 员工,p.ename 上级领导 from emp e left join emp p on e.mgr=p.empno;

-- 子查询
-- 单行子查询
-- 案例:#查询和scott在同一部门的所有员工信息
select * from emp where deptno=(select deptno from emp where ename='SCOTT');

-- 1:scott所在部门编号
select deptno from emp where ename='SCOTT';

-- 2:找到员工和scott部门编号一致的
select * from emp where deptno=(select deptno from emp where ename='SCOTT');

-- 多行子查询

查询薪水和20号部门员工相等的不在20号部门员工的信息

select * from emp where sal in (select sal from emp where deptno=20) and deptno!=20;

-- 1:20号部门每个员工的薪水
select sal from emp where deptno=20;

-- 2:找到薪水一样,但是不在20部门的员工
select * from emp where sal in (select sal from emp where deptno=20) and deptno!=20;

相关文章

  • mysql基础5-关联查询&子查询

    --内连接-- 没有主从表之分,只会将两个表中相等的值列出在结果集中 查询员工编号(empno)为7788的员工姓...

  • 第六章 查询性能优化(下)

    MySQL查询优化器的局限性 关联子查询 MySQL的关联子查询实现的很差,最好改成左外连接(LEFT OUTER...

  • 查询性能优化

    MySQL查询优化器的局限性 关联子查询 MySQL的子查询实现的非常糟糕,最糟糕的一类查询是where条件中包含...

  • MySQL

    1、mysql in和exists区别 in是先进行子查询,然后将内表(子查询)与外表(主查询)进行hash关联(...

  • 数据库笔记-SQL子查询

    子查询:关联查询和非关联查询 子查询是「查询」中的「查询」,就是「嵌套查询」。 以 NBA 的SQL数据库文件为例...

  • MySQL 子查询、内联结、外联结

    子查询MySQL 子查询版本要求:MySQL4.1引入了对子查询的支持。子查询:嵌套在其他查询语句中的查询。 示例...

  • mysql连接查询,自关联,子查询

    mysql支持三种类型的连接查询,分别为:内连接查询,左连接查询,右连接查询 内连接查询: 左连接查询: 右连接查...

  • SQL必知必会(子查询)

    一、什么是关联子查询,什么是非关联子查询 子查询虽然是一种嵌套查询的形式,不过我们依然可以依据子查询是否执行多次,...

  • MySQL 子查询

    什么是子查询 为什么要使用子查询 子查询的分类 怎样使用子查询 关联子查询 要使用的数据表 1. 什么是子查询? ...

  • mysql 查询

    mysql的查询、子查询及连接查询 一、mysql查询的五种子句 where(条件查询)、having(筛选)、g...

网友评论

      本文标题:mysql基础5-关联查询&子查询

      本文链接:https://www.haomeiwen.com/subject/gcintrtx.html