mysql 中 Left Join 与 Join 的区别

发表于 2021-01-08  1.26k 次阅读


timg (1).jpg

在mysql中,left join 是连表查询的左连,可以理解为以左边表为主,连接右表,无论右表是否有对应数据,都可以查出来。而 join 可以认为是 inner join 内连接,理解为左表有右表对应数据都有时才能查出来。

比如:

表A

name age kind
Tom 16 1
Com 15 5

表B

kind kind_name
1 book

语句

SELECT * FROM A as a LEFT JOIN B as b on a.kind = b.kind;

结果

name age kind kind1 kind_name
Tom 16 1 1 book
Com 15 5 NULL NULL

我们发现使用left join时,左边表的有数据但在右表没有对应数据,是能查出来的,而没有数据会体现为NULL。

但有时我们会认为连表没有就是错误的,应该不能查出来。我们就需要join来连接。

语句

SELECT * FROM A as a LEFT JOIN B as b ON a.kind = b.kind;

结果

name age kind kind1 kind_name
Tom 16 1 1 book

我们发现那一条左表没有对应数据的数据没有了。

在平常编程中,选择哪一种连接方式,一定要想一想为什么选择这种连接方式。

结束~

本站文章基于国际协议BY-NA-SA 4.0协议共享;
如未特殊说明,本站文章皆为原创文章,请规范转载。

0

一盏灯 一座城 找一人 一路的颠沛流离