sql 连接查询 on 和 where 的区别

276 阅读1分钟

连接查询有以下四种

  • left join : 左连接,返回左表中所有的记录以及右表中连接字段相等的记录。
  • right join : 右连接,返回右表中所有的记录以及左表中连接字段相等的记录。
  • inner join : 内连接,又叫等值连接,只返回两个表中连接字段相等的行。
  • full join : 外连接,返回两个表中的行:left join + right join

对于left joinright joinfull join来说:

  1. on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 \
  2. where条件是在临时表生成好后,再对临时表进行过滤的条件。

而对于inner join 来说:

on和where的限制条件将同时起作用,因为inner join 是返回两个表中互相匹配的数据