Re: вопрос по join
Автор оригинала: alexey84
объясните в чем отличие между left join и left outer join
Существует два типа соединений: INNER JOIN & OUTER JOIN. В обоих случаях, соединение (JOIN) создает связь между двумя таблицами основываясь на паре столбцов (ключей).
INNER JOIN возвращает строки из обеих таблиц только если ключи из обеих таблиц удовлетворяют условию соединения.
OUTER JOIN возвращает все строки из одной таблицы и присоединяет только те строки из другой таблицы, которые удовлетворяют условию соединения. Поэтому результат соединения может содержать пустые значения (NULL).
Еще бывают LEFT OUTER JOIN & RIGHT OUTER JOIN.
LEFT OUTER JOIN выбирает из левой таблицы все значения, удовлетворяющие условию WHERE, независимо от условия в ON, и подсоединяет строки из правой таблицы, довлетворяющие условию в ON. Аналогично работает RIGHT OUTER JOIN.
При использовании внешних соединений, ключевое слово OUTER можно опустить.
Если интересно, как именно работают твои запросы, можно использовать EXPLAIN SELECT ... LEFT OUTER JOIN | EXPLAIN SELECT ... LEFT JOIN и сравнить результат.