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 (+) 老式写法

Oracle (+) 老式写法

五、小结

LEFT/RIGHT JOIN 外连接是数据库操作中的基础而关键的用法,建议结合文中的示例表在 Oracle 与 MySQL 中分别动手验证,注意两者在自增、分页、正则等处的语法差异,做到融会贯通。

💬 0 评论

评论(0)

登录后发表评论。