这篇“MySQL多表查询的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL多表查询的方法是什么”文章吧。

多表查询案例数据环境准备

createtablesalgrade(gradeint,losalint,hisalint)comment'薪资等级表';insertintosalgradevalues(1,0,3000);insertintosalgradevalues(2,3001,5000);insertintosalgradevalues(3,5001,8000);insertintosalgradevalues(4,8001,10000);insertintosalgradevalues(5,10001,15000);insertintosalgradevalues(6,15001,20000);insertintosalgradevalues(7,20001,25000);insertintosalgradevalues(8,25001,30000);

在这个案例中,我们主要运用上面所讲解的多表查询的语法,完成以下的12个需求即可,而这里主要涉及到的表就三张:emp员工表、dept部门表、salgrade薪资等级表 。

查询员工的姓名、年龄、职位、部门信息 (隐式内连接)

表: emp , dept

连接条件: emp.dept_id = dept.id

selecte.name,e.age,e.job,d.namefromempe,deptdwheree.dept_id=d.id;

查询年龄小于30岁的员工的姓名、年龄、职位、部门信息(显式内连接)

表: emp , dept

连接条件: emp.dept_id = dept.id

selecte.name,e.age,e.job,d.namefromempeinnerjoindeptdone.dept_id=d.idwheree.age<30;

查询拥有员工的部门ID、部门名称

表: emp , dept

连接条件: emp.dept_id = dept.id

selectdistinctd.id,d.namefromempe,deptdwheree.dept_id=d.id;

查询所有年龄大于40岁的员工, 及其归属的部门名称; 如果员工没有分配部门, 也需要展示出来(外连接)

表: emp , dept

连接条件: emp.dept_id = dept.id

selecte.*,d.namefromempeleftjoindeptdone.dept_id=d.idwheree.age>40;

查询所有员工的工资等级

表: emp , salgrade

连接条件 : emp.salary >= salgrade.losal and emp.salary <= salgrade.hisal

--方式一selecte.*,s.grade,s.losal,s.hisalfromempe,salgradeswheree.salary>=s.losalande.salary<=s.hisal;--方式二selecte.*,s.grade,s.losal,s.hisalfromempe,salgradeswheree.salarybetweens.losalands.hisal;

以上就是关于“MySQL多表查询的方法是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。