首页/数据/SQL 速查/USING 与 NATURAL JOIN
本包目录(311 条)

USING 与 NATURAL JOIN

两表同名列可用 USING(col) 简化连接条件,结果中该列只出现一次;NATURAL JOIN 按所有同名列自动连接,隐式且风险高。

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

USING 示例

USING 示例
SELECT o.id, i.product_name, i.qty
FROM orders o
JOIN order_items i USING (order_id);

-- 等价于
SELECT o.id, i.product_name, i.qty
FROM orders o
JOIN order_items i ON i.order_id = o.order_id;
USING同名列连接,输出列合并为一列
NATURAL JOIN按全部同名列自动连接,表结构变化时语义会变
建议生产 SQL 用 ON 显式列出连接条件

易错点

  • NATURAL JOIN 在表新增同名列后会悄悄改变连接条件,不建议在生产 SQL 中使用
  • 外连接配合 USING 时合并列取 COALESCE 语义,和 ON 写法的 NULL 表现略有差异

数据来源与参考

  • MySQL 8.0 Reference Manual · JOIN · USING
  • PostgreSQL Documentation · JOIN · USING
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌