INNER JOIN
INNER JOIN 取两表的交集——只返回关联条件匹配的行。如果左表某行在右表找不到匹配,这行就不会出现在结果里。这是最常用也最高效的连接类型,日常查询中 80% 以上的 JOIN 都是 INNER JOIN。
INNER JOIN 的标准写法是三段式:表A INNER JOIN 表B ON 条件。INNER 可以省略,单独写 JOIN 就是内连接。条件通常用 = 等值连接(也叫等值连接),少数场景用 >、<、<=> 等。
以飞翔科技为例,员工表 employees 存了 dept_code,部门表 departments 存了 dept_id 和 dept_name,用 INNER JOIN 把两表拼起来就能看到每个员工的部门名称:
-- 查每个员工及其部门名称
SELECT e.emp_name, e.basic_salary, d.dept_name
FROM employees e
INNER JOIN departments d ON e.dept_code = d.dept_id;
-- 飞翔小店商品和店铺信息联查
SELECT p.product_name, p.price, s.shop_name, s.shop_address
FROM products p
INNER JOIN shops s ON p.shop_name = s.shop_name;
-- 三表连接:员工 + 部门 + 工资等级
SELECT e.emp_name, d.dept_name, g.grade_name, e.basic_salary
FROM employees e
INNER JOIN departments d ON e.dept_code = d.dept_id
INNER JOIN salary_grades g ON e.salary_grade = g.grade_code;
表别名(e、d、p)让 SQL 更精炼。三表连接的逻辑链路:员工通过 dept_code 找到部门,再通过 salary_grade 找到等级名称——两条 INNER JOIN 串起了三张表。