SQL 学习笔记:LEFT/RIGHT JOIN 外连接(外连接)
一、外连接 语法
SELECT a.*, b.列 FROM 表A a
LEFT JOIN 表B b ON a.关联键 = b.关联键;
-- Oracle 老式: SELECT ... FROM A a, B b WHERE a.k = b.k(+);二、参数说明
| 项目 | 说明 |
|---|---|
LEFT JOIN | 保留左表全部行,右表无匹配则补 NULL |
RIGHT JOIN | 保留右表全部行,左表无匹配则补 NULL |
FULL JOIN | 全外连接(MySQL 不支持,可用 UNION 模拟) |
(+) 语法 | Oracle 专有老式外连接标记,写在非保留侧 |
三、注意事项
- LEFT JOIN 能找出「左表有、右表没有」的记录(右表列 NULL),常用于查缺失
- Oracle 老式 a.k = b.k(+) 等价于 LEFT JOIN,但可读性差,推荐标准写法
- 外连接中过滤 NULL 要用 WHERE 列 IS NULL,不能放进 ON 否则变内连接
四、经典案例
案例1:找无订单的客户
案例2:右连接等价于左连接
案例3:Oracle (+) 老式写法
五、小结
LEFT/RIGHT JOIN 外连接是数据库操作中的基础而关键的用法,建议结合文中的示例表在 Oracle 与 MySQL 中分别动手验证,注意两者在自增、分页、正则等处的语法差异,做到融会贯通。
评论(0)
请登录后发表评论。