INNER JOIN 内连接要点
- 语法:FROM 左表 INNER JOIN 右表 ON 左表.键 = 右表.键
- INNER 可省略,光写 JOIN 默认就是内连接,效果一致
- 只保留两侧都匹配的行,任何一边对不上就整行消失
- JOIN 之后仍可接 WHERE 做进一步过滤,顺序不影响结果
- 给表起别名(如 u / o)能让长 SQL 清爽很多
- 关联的键最好有索引,否则大表内连接会非常慢
INNER JOIN 内连接示例
-- 查每个用户对应的订单(只保留有订单的用户)
SELECT u.user_name, o.order_id, o.amount
FROM user u
INNER JOIN orders o ON u.user_id = o.user_id;
-- 起别名 + 时间范围过滤
SELECT u.user_name, o.order_id
FROM user u
INNER JOIN orders o ON u.user_id = o.user_id
WHERE o.order_date BETWEEN '2026-01-01' AND '2026-12-31';
避坑提醒:INNER JOIN 用 WHERE 过滤和用 ON 过滤结果一样,但 LEFT JOIN 时两者天差地别,别混为一谈。