欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 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, 欧美, 科幻)

相关标签: mysql php