让我用以下例子解释这个问题:
这就是我的MySQL数据库的样子:
表名:general_info
Movie_ID Movie_Name
1 Iron Man
2 Superman
3 Batman
表名:cast
Movie_ID Cast_Name
1 Robert Downey Jr.
1 Gwyneth Paltrow
2 Henry Cavill
2 Amy Adams
3 Christian Bale
3 Heath Ledger
表名production_companies
Movie_ID Production_name
1 Marvel
1 Paramount
2 Legendary Pictures
2 DC Entertainment
3 Snycopy
表名user_cast_preference
user_id user_cast_name
1 Robert Downey Jr.
1 Gwyneth Paltrow
1 Christian Bale
1 Heath Ledger
表名user_production_preference
user_id user_production_name
1 Marvel
1 Paraamount
1 Syncopy
<小时/> <小时/>
现在,我想要获取符合用户偏好的所有电影。换句话说,获取所有电影,用户首选的演员+首选制作公司。
以下是预期结果
movie_id movie_name cast_name production_name
1 Iron Man Robert Downey Jr, Marvel,
Gwyneth Paltrow Paramount
2 Batman Christian Bale, Syncopy
Heath Ledger
我只取得了铁人三项和蝙蝠侠并且没有取得超人,因为至少有一部电影的演员/ production_company在用户的首选列表中。
甚至连一个演员或制片公司的名字都不是超人。
答案 0 :(得分:0)
select movie_id,movie_name,cast_name,production_name
from general_info as g
inner join cast as c on g.movie_id=c.movie_id
inner join production_companies p on g.movie_id=p.movie_id
where c.cast_name in (select user_cast_name from user_cast_prefrence)
尝试此查询..请帮助并标记答案