Здраствуйте! Я всегда при работе с MySQL использовал простие запросы, если надо было сделать какую-то сложную выборку то делал это двумя-тремя запросами. Но вот иногда все же понимаю что некоторые вещи можно легко осуществить одним запросом с тем же LEFT JOIN, но не до конца понимаю как он работает, и главное в чем его отличие от например INNER JOIN, RIGHT JOIN, CROSS JOIN, просто JOIN и других из мануала (http://php.ru/mysql/reference.html#join). Мануал читаю уже несколько раз подряд, разсматриваю примеры, но разницу понять не могу. Обясните пожалуста.
А между тем там довольно ясно сказано что есть собсно две группы объединений, условно inner и left. INNER JOIN, STRAIGHT JOIN, CROSS JOIN, перечисление таблиц через запятую к каждой строке из первой таблицы подключает все строки второй, т.е. берет все возможные комбинации. При использовании ON или USING если для первой таблицы нет соответствий во второй, то строка не берется. В отличие от этого, при LEFT JOIN, RIGHT JOIN, NATURAL JOIN при отсутствии соответствия делают строку, где вместо всех полей второй таблицы пишется NULL Вариации операторов внутри групп незначительны, многие из них сделаны только для совместимости