sql中join与leftjoin区别
在SQL中,JOIN和LEFT JOIN是用来合并两个或多个表的操作,但是它们之间有一些区别。
JOIN操作会返回两个表中匹配的行,即只返回两个表中都有匹配的行。如果两个表中有一行没有匹配的行,则不会返回该行。
LEFT JOIN操作会返回左表(左边的表)中的所有行,而不管右表(右边的表)中是否有匹配的行。如果右表中没有匹配的行,则返回NULL值。
换句话说,JOIN操作要求两个表中都有匹配的行,而LEFT JOIN操作允许左表中的行没有匹配的行。
下面是一个示例,说明JOIN和LEFT JOIN的区别:
假设我们有两个表:表A和表B。
表A:
| ID | Name | |----|------| | 1 | John | | 2 | Jane | | 3 | Tom |
表B:
| ID | Age | |----|-----| | 1 | 25 | | 3 | 30 | | 4 | 35 |
使用JOIN操作:
SELECT A.ID, A.Name, B.Age FROM A JOIN B ON A.ID = B.ID;
结果:
| ID | Name | Age | |----|------|-----| | 1 | John | 25 | | 3 | Tom | 30 |
使用LEFT JOIN操作:
SELECT A.ID, A.Name, B.Age FROM A LEFT JOIN B ON A.ID = B.ID;
结果:
| ID | Name | Age | |----|------|-----| | 1 | John | 25 | | 2 | Jane | NULL| | 3 | Tom | 30 |
可以看到,在JOIN操作中,只返回两个表中都有匹配的行(ID为1和3的行),而在LEFT JOIN操作中,返回了左表中的所有行,包括没有匹配的行(ID为2的行),同时如果右表中没有匹配的行,则返回NULL值(ID为2的行的Age为NULL)
原文地址: https://www.cveoy.top/t/topic/hJgn 著作权归作者所有。请勿转载和采集!