Порядок таблиц в вопросе соединения, когда используются ЛЕВЫЕ (внешние) объединения?

Я хотел бы подтвердить, что запрос 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 ....

, если явное ЛЕВОЕ СОЕДИНЕНИЕ между апельсинами и киви остается неизменным. Из того, что я читал в различных документах, возвращаемый набор должен быть точно таким же.

Меня действительно интересуют только результаты запроса, а не его производительность в реальной базе данных. (Я использую PostgreSQL 8.3, который AFAIK не поддерживает подсказки оптимизатора о порядке соединения и попытается автоматически создать оптимальный план запроса).

7
задан Radio Yerevan 15 February 2011 в 21:14
поделиться