是否有任何情况会导致从包含内部联接和外部联接的查询返回的记录数量不同,具体取决于联接的顺序?
作为一个简单示例,此查询生成的结果集可能存在任何差异:
SELECT *
FROM table1
JOIN table2 on table1.id = table2.id
LEFT OUTER join table3 ON table1.id = table3.id
....或者此查询只有2个连接条件被交换
SELECT *
FROM table1
LEFT OUTER join table3 ON table1.id = table3.id
JOIN table2 on table1.id = table2.id
答案 0 :(得分:0)
对于INNER JOIN命令无关紧要。但对于OUTER JOIN来说,确实如此。
'Table1 JOIN Table2'与'Table2 JOIN Table1'
相同但是,
'Table1 LEFT JOIN Table2'与'Table2 LEFT JOIN Table1'不同
外部联接既不是可交换的,也不是联想的。您可以查看EXPLAIN PLAN以了解性能差异。