Есть вопрос по выборке, точнее не по самой выборке SELECT, а о методе. Нужно выбрать из одной талицы поля, но так, чтобы основные значения совпадали со значенями в четырех других таблицах. Какой мето эффективнее использовать: LEFT JOIN SELECT v.video_id, a.name, g.genre FROM videos AS v LEFT JOIN link_actors_videos AS la ON la.video_id = v.video_id LEFT JOIN actors AS a ON a.actor_id = la.actor_id LEFT JOIN link_genre_video AS lg ON lg.video_id = v.video_id LEFT JOIN genres AS g ON g.genre_id = lg.genre_id либо простое объединение SELECT v.video_id, a.name, g.genre FROM videos AS v,link_actors_videos AS la,actors AS a,link_genre_video AS lg, genres AS g WHERE la.video_id = v.video_id, a.actor_id = la.actor_id, lg.video_id = v.video_id,g.genre_id = lg.genre_id какой из этих методо работает быстрее? или есть более быстрые способы выборки из 4-5 таблиц?
Johnson Для начала стоит понять, что эти запросы дают два разных результата. А потом задаться вопросом, что эффективнее ловить рыбу или сверлить дырки?
Спасибо за ответ! Я знаю что они выдают разный результат. Вопрос был в том, какой метод лучше использовать, будь то LEFT JOIN, INNER JOIN или RIGHT JOIN. Хочу найти оптимальный и быстрый вариант. Может кто знает?
Johnson LEFT [OUTER] JOIN и RIGHT JOIN - одно и то же (и по скорости и по принципу) LEFT [OUTER] JOIN и INNER JOIN - разные результаты (примеры смотрите в документации) Декартово соединение "," - третий вид запросов. Тип соединения выбирается исходя из логики приложения и связей в таблицах, а не по принципу "что быстрее". Простите, ваш вопрос некорректен. В общем учите мат.часть. Simpliest вам уже на всё ответил. http://sql-ex.ru/exercises.php - рекомендую