【MySQL练习-多表查询2】

三表连接查询

昨天给大噶分享了多表查询,但是还没完,今天为大家带来了多表查询2.0版本。不过多赘述了,直接上代码叭!!!

-- 查询员工的编号、姓名、薪水、部门编号、部门名称、薪水等级
select * from emp;
select * from dept;
select * from salgrade;

select e.ename,e.sal,e.empno,e.deptno,d.dname,s.* 
from emp e
right outer join dept d
on e.deptno = d.deptno
inner join salgrade s 
on e.sal between s.losal and s.hisal

注意:between and 函数这里,需要在中间插入两个字段,用法就跟我们学到的between…and…语法一样

自连接查询

在这里插入图片描述

-- 查询员工的编号、姓名、上级编号,上级的姓名
select * from emp;
select e1.empno 员工编号,e1.ename 员工姓名,e1.mgr 领导编号,e2.ename 员工领导姓名
from emp e1
inner join emp e2
on e1.mgr = e2.empno;
-- 左外连接:
select e1.empno 员工编号,e1.ename 员工姓名,e1.mgr 领导编号,e2.ename 员工领导姓名
from emp e1
left outer join emp e2
on e1.mgr = e2.empno;

99语法的多表查询就到这里啦,没有3.0版本,大家不用担心看得头昏脑胀的。昨天不是说会给大家提到92语法的多表查询嘛,它来啦!!!

92语法—多表查询

其实99和92两者并没有太大的差异,本质上来说就跟手机版本更迭一样,新增了功能,更加方便大家操作而已。

-- 查询员工的编号,员工姓名,薪水,员工部门编号,部门名称:
select e.empno,e.ename,e.sal,e.deptno,d.dname
from emp e,dept d
-- 相当于99语法中的cross join ,出现笛卡尔积,没有意义
select e.empno,e.ename,e.sal,e.deptno,d.dname
from emp e,dept d
where e.deptno = d.deptno;
-- 相当于99语法中的natural join 
-- 查询员工的编号,员工姓名,薪水,员工部门编号,部门名称,查询出工资大于2000的员工
select e.empno,e.ename,e.sal,e.deptno,d.dname
from emp e,dept d
where e.deptno = d.deptno and e.sal > 2000;
-- 查询员工的名字,岗位,上级编号,上级名称(自连接):
select e1.ename,e1.job,e1.mgr ,e2.ename 
from emp e1,emp e2
where e1.mgr = e2.empno;
-- 查询员工的编号、姓名、薪水、部门编号、部门名称、薪水等级
select e.empno,e.ename,e.sal,e.deptno,d.dname,s.grade 
from emp e,dept d,salgrade s
where e.deptno = d.deptno and e.sal >= s.losal and e.sal <= s.hisal;

总结

1.92语法麻烦 。
2.92语法中 表的连接条件 和 筛选条件 是放在一起的没有分开。
3.99语法中提供了更多的查询连接类型:cross,natural,inner,outer

多表查询就给大家讲到这了,感谢观看!!!
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
MySQL查询是指在查询中同时涉及到多个的操作。多查询可以更加方便地获取到需要的数据,提供了更加灵活的查询方式。 在进行多查询之前,我们首先需要对多个之间的关系进行了解和分析。常见的多查询方式包括联接查询、子查询以及多级嵌套查询等。 联接查询是最常见且常用的多查询方式之一。通过联接查询,我们可以根据两个或多个之间的关联字段,将它们连接在一起进行查询。 例如,我们有两个A和B,它们通过一个共同的字段关联起来。我们可以使用联接查询语句如下: SELECT A.field1, B.field2 FROM A INNER JOIN B ON A.common_field = B.common_field; 在这个查询中,我们使用了INNER JOIN关键字将A和B连接起来,其中common_field是两个之间的关联字段。通过这个联接查询,我们可以同时获取到A和B中的相关信息。 除了联接查询之外,我们还可以使用子查询和多级嵌套查询进行多查询。 子查询是指在查询语句中嵌套了另一个查询语句。通过子查询,我们可以在一个查询中引用另一个查询的结果作为条件进行查询。 多级嵌套查询是指在一个查询语句中嵌套了多个子查询。通过多级嵌套查询,我们可以按照一定的顺序和逻辑进行复杂的查询操作。 综上所述,MySQL查询是一种可以同时涉及多个进行查询的操作。通过联接查询、子查询和多级嵌套查询等方式,我们可以更加灵活地获取到需要的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言chengxu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值