电影网站这种数据结构该怎样多表联合查询?
程序员文章站
2022-04-08 13:21:10
...
如上图:每部电影有多个标签,而每个标签又有多部电影,典型的多对多的关系,于是我建立了中间表:fm_movie_tag
这个表就两个字段:movie_id和tag_name。movie_id和tag_name一一对应的一个表。
而针对每部电影详细信息的数据表fm_moviedetail,可以设两个字段:地区(movie_area)和年代(movie_year),那现在我要查询“2015”年“欧美”的“科幻”电影,该怎样写这条sql语句?
回复内容:
如上图:每部电影有多个标签,而每个标签又有多部电影,典型的多对多的关系,于是我建立了中间表:fm_movie_tag
这个表就两个字段:movie_id和tag_name。movie_id和tag_name一一对应的一个表。
而针对每部电影详细信息的数据表fm_moviedetail,可以设两个字段:地区(movie_area)和年代(movie_year),那现在我要查询“2015”年“欧美”的“科幻”电影,该怎样写这条sql语句?
SELECT md.name FROM fm_movie_tag AS fmt
LEFT JOIN fm_moviedetail AS md ON md.id = fmt.movie_id
LEFT JOIN fm_tagdetail AS td ON td.id = fmt.tag_id
WHERE md.movie_area = 'xx' AND md.movie_year = 'xx' AND td.name = 'xx';
2015也是一个 tag, 是不是就简单了. tag in(2015, 欧美, 科幻)