在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 |
我们发现那一条左表没有对应数据的数据没有了。
在平常编程中,选择哪一种连接方式,一定要想一想为什么选择这种连接方式。
结束~
COMMENTS | NOTHING