INNER JOIN和LEFT JOIN之间的基本区别是什么?

时间:2015-09-24 06:12:54

标签: sql join

我正在运行以下两个查询,但它们都提供相同的输出。

查询1

SELECT * FROM EMP LEFT JOIN DEPT
ON EMP.EMP_ID = DEPT.EMP_ID

查询2

SELECT * FROM EMP INNER JOIN DEPT
ON EMP.EMP_ID = DEPT.EMP_ID

这两个查询都给出相同的输出,即两个表中的所有行。 据我所知left join应该只提供第一个表中的行,即#34; EMP"而不是从其他表(DEPT)。

感谢。

1 个答案:

答案 0 :(得分:1)

INNER JOIN仅显示join子句所包含的行。 LEFT JOIN还将显示“左”表中连接子句不包含的行,并为连接表的列提供空值。

因此,当执行左连接时,它不会减少左表的结果集中的记录数,而使用内连接则可能会减少。但是,如果join子句在右表中为左表中的每一行提供至少1个匹配,则内连接和左连接将给出相同的结果。