sql常用关键字
INNER JOIN 关键字
内连接,又叫等值连接,只返回两个表中连接字段相等的行。
简单理解:只返回匹配的行,没有匹配的行则不返回。没有主表的概念。
注释:INNER JOIN 与 JOIN 是相同的。
在 INNER JOIN 中条件放在 on 中和 where 中,返回的结果集是相同的。
LEFT JOIN 关键字
即使右表中没有匹配,也从左表返回所有的行。
简单理解:以左表为主表,查询该表所有的数据;其次是查右表,如果右表中没有匹配,则结果用NULL来填充。
- RIGHT JOIN 则是即使左表中没有匹配,也从右表返回所有的行
注释:在某些数据库中,LEFT JOIN 称为 LEFT OUTER JOIN。而 RIGHT JOIN 称为 RIGHT OUTER JOIN。
ON 关键字
数据库在通过连接 (join) 两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。
在使用 left jion 时,格式:【表1 left jion 表2 on 连接条件 where 过滤条件】,on 和 where 条件的区别如下:
1、 on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。
2、where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
记住:所有的外连接条件都必需要放在ON后面,不然前面的所有LEFT,和RIGHT关联将作为摆设,而不起任何作用。(会报语法错误)