on 子句用于指定 join 操作中比较和合并两个表的行的条件,包括内连接、左外连接、右外连接和全外连接。on 条件只使用相等比较,可以使用多个条件指定更复杂的连接规则,并可与其他 join 类型一起使用。
MySQL 中 ON 的用法
ON 子句概述
ON 子句用于指定在 JOIN 操作中比较和合并两个表的行的条件。
语法
<code>ON 表1.列名 = 表2.列名</code>
用法
- 内连接 (INNER JOIN):只返回两个表中匹配的行。
- 左外连接 (LEFT OUTER JOIN):返回左表中的所有行,以及任何在右表中匹配的行。如果右表中没有匹配,则返回 NULL。
- 右外连接 (RIGHT OUTER JOIN):与左外连接类似,但返回右表中的所有行。
- 全外连接 (FULL OUTER JOIN):返回两个表中的所有行,无论是否匹配。
示例
内连接:
<code>SELECT * FROM 表1 INNER JOIN 表2 ON 表1.id = 表2.id;</code>
左外连接:
<code>SELECT * FROM 表1 LEFT OUTER JOIN 表2 ON 表1.id = 表2.id;</code>
右外连接:
<code>SELECT * FROM 表1 RIGHT OUTER JOIN 表2 ON 表1.id = 表2.id;</code>
全外连接:
<code>SELECT * FROM 表1 FULL OUTER JOIN 表2 ON 表1.id = 表2.id;</code>
注意事项
- ON 条件只能使用相等比较(=)。
- 可以使用多个 ON 条件来指定更复杂的连接规则。
- ON 子句可以与其他 JOIN 类型(如 CROSS JOIN、NATURAL JOIN)一起使用。