首页/数据/SQL 速查/三表及多表连接

三表及多表连接

多个表依次连接:链式书写、逐步列出条件;每步都可能放大或缩小行数,最终结果粒度要提前想清楚。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT o.id, u.name, i.product_name, i.qty
FROM orders o
JOIN users       u ON u.id = o.user_id
JOIN order_items i ON i.order_id = o.id
WHERE o.status = 1
ORDER BY o.id, i.id;
书写按依赖顺序链式 JOIN
粒度一行 = 一个订单明细(若明细多行则订单重复出现)
检查先分别核对各表过滤后的行数与最终行数

易错点

  • 三表连接的行数放大常来自中间表的一对多匹配,先数行再上线
  • 把过滤条件写进 ON 与外连接组合时结果会变,先确认每一步的保留侧

数据来源与参考

  • MySQL 8.0 Reference Manual · JOIN Clause
  • PostgreSQL Documentation · Joined Tables
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌