Задавайте вопросы, мы ответим
Вы не зашли.
Объясните мне чайнику на пальцах пожалуйста если не затруднит, чем они отличаются, и когда лучше применять LEFT или RIGHT в запросе. Я так понимаю что при LEFT запросе идет поиск по левому краю таблице, а при RIGHT по правому, это как таблица просто делиться на две равные части что ли тогда? И если поиск в таблице ведется по индексам которые находятся в левой части то нужно применять LEFT JOIN, я правильно понимаю это все или нет?
Неактивен
JOIN объединяет несколько таблиц. Либо одну таблицу саму с сабой.
Левое объединение tb1 LEFT JOIN tb2 в результирующую таблицу позволяет включить строки "левой" таблицы tb1, которым не нашлось соответствия в "правой" таблице tb2.
Неактивен
Угу. Лучше всего использовать внутреннее (INNER) объединение таблиц.
Что касается внешних объединений, то они полностью эквивалентны. То
есть эквивалентны следующие запросы:
SELECT ... FROM a LEFT JOIN b ON a.fa = b.fb ...
и
SELECT ... FROM b RIGHT JOIN a ON a.fa = b.fb ...
UPD: А самого главного не написал, зачем всё это нужно
Таблица food:
id | name
---------
1 | капуста
2 | морковка
Таблица menu
id | food
---------
1 | 1
2 | 2
3 | 3
SELECT * FROM food f JOIN menu m ON f.id = m.food // -- выдаст две строки, т.к. food=3 нет
SELECT * FROM food f RIGHT JOIN menu m ON f.id = m.food // -- выдаст три строки (т.е. все из правой — m — таблицы, и то, что найдет совпадающее в левой)
Неактивен
Всем спасибо за ответы
Неактивен