当前位置: 首页 > MySQL数据库

MySQL多表查询的方法是什么

时间:2026-01-27 10:37:35
多表查询案例数据环境准备

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的user表有什么作用
下一篇:mysql变量怎么自定义
mysql
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素