我有一个数据库MOVIES,它有2个表。 1是MOVIE,另一个是GENRE。
我希望能够将MOVIE的行条目与GENRE表中的多行相关联。这可以在MOVIE表中只用1列来完成吗?
我见过电影数据库的例子,但它们只允许1种类型映射到一部电影。有没有办法让多个类型属于一个入门电影?我正在使用mySQL来创建数据库。
答案 0 :(得分:3)
您应该有第三个表MOVIE_GENRE
来实现这种多对多关系。它在MOVIE
和GENRE
表中都有外键。查找列表所有类型的电影的查询将如下所示:
SELECT m.title,
IFNULL(GROUP_CONCAT(g.name), "") genres
FROM Movie m
LEFT JOIN Movie_Genre mg ON m.id = mg.movie_id
JOIN Genre g ON g.id = mg.genre_id
GROUP BY m.id
答案 1 :(得分:2)
您需要一个包含2列的多对多或连接表
MovieS和GenreID
拥有此结构将允许您将单个电影链接到任意数量的类型