Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с запросом

Анна Ярославцева Знаток (405), на голосовании 6 месяцев назад
Создайте запрос для того чтобы получить список всех фильмов из таблицы movies и их актеров из таблицы actors, включая фильмы, для которых не указаны актеры и актеров для которых не указаны фильмы.

Таблица movies
Таблица actors
Обязательные поля результирующей таблицы


Так как в MySQL нет FULL JOIN , тогда эмулируйте FULL JOIN используя UNION и LEFT JOIN в связке c RIGHT JOIN
Голосование за лучший ответ
Лина Дарк Мудрец (11082) 7 месяцев назад
Ну.. делаем Селект с райт джоином плюс Union Селект с лефт джоином... Какие проблемы
- Ученик (203) 7 месяцев назад
 SELECT m.title, a.name 
FROM movies m
LEFT JOIN movie_actors ma ON m.id = ma.movie_id
LEFT JOIN actors a ON a.id = ma.actor_id

UNION

SELECT m.title, a.name
FROM actors a
LEFT JOIN movie_actors ma ON a.id = ma.actor_id
LEFT JOIN movies m ON m.id = ma.movie_id;
Первая часть получает все фильмы и их актёров, включая фильмы без актёров.
Вторая часть, после UNION, получает всех актёров и их фильмы, включая актёров без фильмов.
UNION автоматически убирает дубликаты строк. Если нужно включить все строки, включая дубликаты, используйте UNION ALL.
Похожие вопросы