小编eve*_*aug的帖子

多对多查询,MySQL

我有3个这样的表:

电影:

  • movie_id(int)
  • movie_title(varchar)
  • movie_runtime(int)
  • movie_releaseYear(int)
  • ...

类型:

  • genre_id(int)
  • genre_name(varchar)

movieGenres:

  • movieGenre_id(int)
  • movieGenre_movieId(int)
  • movieGenre_genreId(int)

电影可以包括许多类型.
我想抓住电影片名,运行时和发行年及其类型.我怎么能在一个查询中做到这一点?

我试着这样做:

SELECT u.movie_title, u.movie_runtime, u.movie_releaseYear, a.genre_name 
FROM movieGenres ua 
LEFT JOIN movies u ON u.movie_id = ua.movieGenre_filmId 
LEFT JOIN genres a ON a.genre_id = ua.movieGenre_genreId
LIMIT 0,10
Run Code Online (Sandbox Code Playgroud)

这返回类似于:

罗宾汉_ 101 _ 2001 _冒险
罗宾汉_ 101 _ 2001 _动作
罗宾汉_ 101 _ 2001 _戏剧
防火墙_ 98 _ 2003 _动作
防火墙_ 98 _ 2003 _剧情

我不想重复我已经知道的信息.我希望它显示如下:

罗宾汉_ 101 _ 2001 _冒险_动作_戏剧
防火墙_ 98 _ 2003 _动作_戏剧 …

mysql database many-to-many

5
推荐指数
1
解决办法
276
查看次数

标签 统计

database ×1

many-to-many ×1

mysql ×1