SQL 中 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 区别

sql中的连接查询有inner join(内连接)、left join(左连接)、right join(右连接)、full join(全连接)四种方式,它们之间其实并没有太大区别,仅仅是查询出来的结果有所不同。

1.inner join,在两张表进行连接查询时,只保留两张表中完全匹配的结果集。

2.left join,在两张表进行连接查询时,会返回左表所有的行,即使在右表中没有匹配的记录。

3.right join,在两张表进行连接查询时,会返回右表所有的行,即使在左表中没有匹配的记录。

4.full join,在两张表进行连接查询时,返回左表和右表中所有没有匹配的行。

分类至 MySQL,
含 0条评论

mysql left join 右表数据不唯一的情况解决方法

1.left join 基本用法

mysql left join 语句格式

A LEFT JOIN B ON 条件表达式

left join 是以A表为基础,A表即左表,B表即右表。

左表(A)的记录会全部显示,而右表(B)只会显示符合条件表达式的记录,如果在右表(B)中没有符合条件的记录,则记录不足的地方为NULL。

2.left join 右表数据不唯一解决方法

但如果B表符合条件的记录数大于1条,就会出现1:n的情况,这样left join后的结果,记录数会多于A表的记录数。

分类至 MySQL,
含 0条评论

left join on 和 where 条件放置的区别

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。

在使用 left join 时,on 和 where 条件的区别如下:

1、on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。

2、where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

 

分类至 MySQL,
含 0条评论