我想确认 SQL 查询
SELECT ....
FROM apples,
oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id,
bananas
WHERE ....
完全等同于 FROM 子句中的其他排列,例如
SELECT ....
FROM oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id,
bananas,
apples
WHERE ....
或者
SELECT ....
FROM bananas,
apples,
oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id
WHERE ....
只要橙子和猕猴桃之间的显式 LEFT JOIN 保持不变。从我在各种文档中阅读的内容来看,返回的集合应该完全相同。
我真的只关心查询的结果,而不关心它在实际数据库中的性能。(我使用的是 PostgreSQL 8.3,AFAIK 不支持关于连接顺序的优化器提示,并将尝试自动创建最佳查询计划)。