电影网站这种数据结构该怎样多表联合查询?

图片描述
如上图:每部电影有多个标签,而每个标签又有多部电影,典型的多对多的关系,于是我建立了中间表:fm_movie_tag
这个表就两个字段:movie_id和tag_name。movie_id和tag_name一一对应的一个表。
而针对每部电影详细信息的数据表fm_moviedetail,可以设两个字段:地区(movie_area)和年代(movie_year),那现在我要查询“2015”年“欧美”的“科幻”电影,该怎样写这条sql语句?

阅读 3.6k
2 个回答
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, 欧美, 科幻)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题