我正在运行以下两个查询,但它们都提供相同的输出。
查询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)。
感谢。
答案 0 :(得分:1)
INNER JOIN
仅显示join子句所包含的行。 LEFT JOIN
还将显示“左”表中连接子句不包含的行,并为连接表的列提供空值。
因此,当执行左连接时,它不会减少左表的结果集中的记录数,而使用内连接则可能会减少。但是,如果join子句在右表中为左表中的每一行提供至少1个匹配,则内连接和左连接将给出相同的结果。