开发者

JOIN Multiple Tables with Many to Many Relationship

开发者 https://www.devze.com 2023-03-25 20:39 出处:网络
I have around 30 tables. eg: producer, director etc related to movies each table consists of movie_id and celeb_id field

I have around 30 tables. eg: producer, director etc related to movies

each table consists of movie_id and celeb_id field

there is a table celebs which consists of fields: celeb_id celeb_name

For a specific movie_id i want all the information retrieved in a single query.

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';

I want the nam开发者_如何学Pythones of celebs associated with the type of work:

Director
1. ABC
2. XYZ

Producer
1. ABC2
2. XYZ2

All names of celebs are stored in celebs table with celeb_id and celeb_name and in producer table movie_id and celeb_id and same structure applies to directors, etc.. all other tables

Please help.

Regards,

Kenh


SELECT ...
FROM ...
LEFT JOIN ... ON ...
WHERE ...
ORDER BY ...

Appropriate values for ... are left as an excercise to the OP...


(select 'Director', celeb.name from celebs c join director d on c.celeb_id = d.celeb_id and d.movie_id = "movie_id")

union all

(select 'Producer', celeb.name from celebs c join producer p on c.celeb_id = p.celeb_id and p.movie_id = "movie_id")

union all .....

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号