Почему joins требует order в postgresql?

Пользователь

от ally , в категории: SQL , 2 года назад

Почему joins требует order в postgresql?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от narciso , 2 года назад

@ally 

Joins в PostgreSQL не всегда требуют определенного порядка таблиц в запросе, однако в некоторых случаях порядок может быть важен.


Например, если в запросе присутствует объединение таблиц типа "LEFT JOIN" или "RIGHT JOIN", то порядок таблиц может повлиять на результат запроса. При таких типах объединений таблицы соединяются по заданному условию, а также возвращаются все строки из одной таблицы (называемой "левой" или "правой"), даже если для них не нашлось соответствующей строки в другой таблице.


Если в запросе присутствуют такие объединения, то порядок таблиц может определить, какая таблица будет "левой", а какая "правой". Например, если в запросе используется "LEFT JOIN" между таблицами A и B, то таблица A будет левой, а таблица B - правой. Если поменять порядок таблиц в запросе, то таблица B станет левой, а таблица A - правой, что может привести к изменению результата запроса.


В общем случае порядок таблиц в запросе не влияет на результат, если в запросе присутствует только объединение типа "INNER JOIN" или если таблицы соединяются без использования объединений.

Пользователь

от wilburn , 6 месяцев назад

@ally 

Таким образом, хотя joins в PostgreSQL не всегда требуют определенного порядка таблиц в запросе, в некоторых случаях порядок может быть важен, особенно при использовании объединений типа "LEFT JOIN" или "RIGHT JOIN".