Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 内外连接的顺序重要吗?_Mysql_Sql - Fatal编程技术网

Mysql 内外连接的顺序重要吗?

Mysql 内外连接的顺序重要吗?,mysql,sql,Mysql,Sql,是否有任何情况会导致从包含内部联接和外部联接的查询返回不同数量的记录,具体取决于联接的顺序 作为一个简单的示例,此查询生成的结果集是否存在任何差异: 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 ta

是否有任何情况会导致从包含内部联接和外部联接的查询返回不同数量的记录,具体取决于联接的顺序

作为一个简单的示例,此查询生成的结果集是否存在任何差异:

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

对于内部连接顺序并不重要。但对于外部连接,它确实如此

“Table1 JOIN Table2”与“Table2 JOIN Table1”相同

但是,

“Table1 LEFT JOIN Table2”与“Table2 LEFT JOIN Table1”不同


外部联接既不是交换的,也不是结合的。您可以解释计划以了解性能差异

在您的示例中,它们应该返回相同的结果集,尽管行和列的顺序可能不同。