ПРИСОЕДИНЯЙТЕСЬ к нескольким таблицам с отношением «многие ко многим» - PullRequest
0 голосов
/ 03 августа 2011

У меня около 30 столов. например: продюсер, режиссер и т. д., связанные с фильмами

каждая таблица состоит из поля movie_id и celeb_id

есть таблица знаменитостей, которая состоит из полей: celeb_id celeb_name

Для конкретного movie_id я хочу получить всю информацию, полученную в одном запросе.

SELECT b_movies.*, bb_celebs.celeb_name 
FROM b_movies
LEFT JOIN b_producer ON b_movies.id = b_producer.movie_id 
LEFT JOIN bb_celebs ON b_producer.celeb_id = bb_celebs.celeb_id
LEFT JOIN b_director ON b_movies.id = b_director.movie_id 
LEFT JOIN bb_celebs ON b_director.celeb_id = bb_celebs.celeb_id
WHERE b_movies.id = 'UNIQUE ID';

Я хочу имена знаменитостей, связанных с типом работы:

Director
1. ABC
2. XYZ

Producer
1. ABC2
2. XYZ2

Все имена знаменитостей хранятся в таблице знаменитостей вместе с celeb_id и celeb_name. и в таблице продюсеров movie_id и celeb_id и та же структура применяется к директорам и т. д. все остальные таблицы

Пожалуйста, помогите.

С уважением,

Kenh

Ответы [ 2 ]

1 голос
/ 03 августа 2011
SELECT ...
FROM ...
LEFT JOIN ... ON ...
WHERE ...
ORDER BY ...

Соответствующие значения для ... оставлены в качестве упражнения для ОП ...

0 голосов
/ 03 августа 2011

(выберите «Director», имя знаменитости от знаменитости c присоединиться к директору d на c.celeb_id = d.celeb_id и d.movie_id = "movie_id")

объединение всех

(выберите «Producer», имя знаменитости от знаменитости c присоединиться к продюсеру p на c.celeb_id = p.celeb_id и p.movie_id = "movie_id")

объединение всех .....

...