Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Какая разница между Left Join и Right Join / 4 сообщений из 4, страница 1 из 1
01.06.2015, 04:25:50
    #38972896
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая разница между Left Join и Right Join
Нашел в документации такое:
авторRIGHT JOIN реализован аналогично LEFT JOIN.
А про LEFT JOIN пишут такое :
авторВыражение "A LEFT JOIN B" в MySQL реализовано следующим образом:
...
Таблица B устанавливается как зависимая от таблицы A и от всех таблиц, от которых зависит A.
....
Выполняются все стандартные способы оптимизации соединения, за исключением того, что таблица всегда читается после всех таблиц, от которых она зависит.
Получается таблица А используя LEFT JOIN будет читаться первой, но и в запросе "A RIGHT JOIN B" таблица А все равно будет читаться первой.
Поэтому:
Код: plsql
1.
2.
3.
SELECT * FROM
    t1 RIGHT JOIN t2
    USING (blah_id)


будет выполнятся с такой же скоростью что и запрос:
Код: plsql
1.
2.
3.
4.
SELECT * FROM
    t1 LEFT JOIN t2
    USING (blah_id)
    WHERE t2.blah_id IS NOT NULL



Я правильно понял?
...
Рейтинг: 0 / 0
01.06.2015, 04:28:30
    #38972897
Vano34
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая разница между Left Join и Right Join
Vano34,

А еще там было написано, что предпочтительнее использовать LEFT JOIN
авторRIGHT JOIN works analogously to LEFT JOIN. To keep code portable across databases, it is recommended that you use LEFT JOIN instead of RIGHT JOIN.
...
Рейтинг: 0 / 0
01.06.2015, 07:03:15
    #38972910
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая разница между Left Join и Right Join
Vano34,


Я правильно понял?



нет, неправильно.


t1 left join t2

то же самое, что

t2 right join t1

к скорости это не имеет никакого отношения, дело в семантике операции.
...
Рейтинг: 0 / 0
01.06.2015, 09:07:57
    #38972928
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая разница между Left Join и Right Join
Vano34Получается таблица А используя LEFT JOIN будет читаться первой, но и в запросе "A RIGHT JOIN B" таблица А все равно будет читаться первой.Нет. Всегда первой читается ЛЕВАЯ таблица.
Vano34А еще там было написано, что предпочтительнее использовать LEFT JOIN
Да. Это снимает видимую неоднозначность при смешении типов соединений и отсутствии задающих порядок соединения скобок.
Впрочем, парсер-оптимизатору по барабану. Первое, что он сделает - это трансформирует текст запроса во внутренний псевдокод, а там нет правого и левого связываний, это одно и то же связывание.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Какая разница между Left Join и Right Join / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]