我对多对多关系有疑问。我目前有三张桌子:
在'movie'表格中我有专栏:
在'genre'表中我有列:
在'movie_genre'表格中我有列:
我希望能够连接这些数据库,以便我可以根据页面按类型对我网站上的数据进行排序。例如,如果我想在“动作”下看到每部电影,我只想显示那些用该ID保存在我的数据库中的电影。
如何连接我的数据以匹配我的示例?欢迎任何帮助或建议,我仍然是mySQL和php的新手。
答案 0 :(得分:2)
使用连接(SQL概念)。你应该很快熟悉连接。
SELECT
*
FROM
movie
NATURAL JOIN movie_genres
NATURAL JOIN genre
WHERE
genre.name = 'Action'
编辑:在一部电影和三种类型之间插入关系:
INSERT INTO movie_genre
(movie_id, genre_id)
VALUES
(1, 1),
(1, 2),
(1, 3),
答案 1 :(得分:0)
在紧要关头,这将加入你的桌子。然后,您可以使用WHERE
子句限制结果。
SELECT g.name, m.*
FROM movie m
JOIN movie_genre mg ON mg.id_movie = m.id_movie
JOIN genre g ON g.id_genre = mg.id_genre;
请注意,链接表(movie_genre
)不应具有自己的唯一ID。它的主键应该是它加入的两个表ID,而这就是全部。