首页/数据/SQL 速查/复合键连接

复合键连接

多列共同构成连接键时,ON 中逐列相等;漏写某一列会放宽条件导致错配或行数翻倍,复合索引也要按列序匹配。

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

示例

示例
SELECT a.*, b.name
FROM stock a
JOIN warehouse b
  ON b.warehouse_id = a.warehouse_id
 AND b.region_code  = a.region_code;
写法所有键列都要在 ON 中配对
索引被驱动表上 (warehouse_id, region_code) 复合索引最左前缀可命中
易错漏列时连接条件放宽,行数放大

易错点

  • 复合键只写一半是最隐蔽的错误:查询能跑但包含错配行
  • 两侧键列类型或字符集不一致时索引可能失效,建表时保持一致

数据来源与参考

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