MySQL基础-多表查询之内连接

1,173 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第24天点击查看活动详情

内连接

QQ截图20221024153315.png

  • 内连接查询的是两张表交集部分的数据。(也就是绿色部分的数据)
  • 内连接的语法分为两种: 隐式内连接、显式内连接。先来学习一下具体的语法结构。

隐式内连接

  • SELECT 字段列表 FROM 表1 , 表2 WHERE 条件 ... ;

显式内连接

  • SELECT 字段列表 FROM 表1 [ INNER ] JOIN 表2 ON 连接条件 ... ;

案例:

  • 查询每一个员工的姓名 , 及关联的部门的名称 (隐式内连接实现)
  • 表结构: emp , dept
  • 连接条件: emp.dept_id = dept.id

数据准备

QQ截图20221024153930.png

QQ截图20221024153945.png

案例分析

select emp.name , dept.name from emp , dept where emp.dept_id = dept.id ;
-- 为每一张表起别名,简化SQL编写
select e.name,d.name from emp e , dept d where e.dept_id = d.id;

QQ截图20221024153756.png

  • 查询每一个员工的姓名 , 及关联的部门的名称 (显式内连接实现) --- INNER JOIN ...ON ...
  • 表结构: emp , dept
  • 连接条件: emp.dept_id = dept.id select e.name, d.name from emp e inner join dept d on e.dept_id = d.id; QQ截图20221024154427.png
-- 为每一张表起别名,简化SQL编写
select e.name, d.name from emp e join dept d on e.dept_id = d.id;

QQ截图20221024154524.png

  • 表的别名:
  1. tablea as 别名1 , tableb as 别名2 ;
  2. tablea 别名1 , tableb 别名2 ;
  • 注意事项: 一旦为表起了别名,就不能再使用表名来指定对应的字段了,此时只能够使用别名来指定字 段。