关于SQL:内部联接和左联接的基本区别是什么?

what is the basic difference between INNER JOIN and LEFT JOIN?

本问题已经有最佳答案,请猛点这里访问。

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

查询1

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

查询2

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

这两个查询提供相同的输出,即两个表中的所有行。据我所知,left join只应给出第一个表中的行,即"emp",而不应给出其他表(dept)中的行。

谢谢。


INNER JOIN只显示join子句所属的行。LEFT JOIN还将显示join子句不支持的"left"表上的行,并为联接表的列提供空值。

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