我有一个用户表和电影表,每个用户可以观看一部电影。
现在我想找到观看特定电影的所有用户, 我的表在MySql中应该怎么样?
答案 0 :(得分:1)
要执行此操作,您需要3个表。前两个是用户和电影,他们会以非常基本的形式看起来像这样:
user
id
name
movie
id
title
由于许多用户可以观看很多电影,并且同一部电影可以被多个用户观看,因此那里有多对多的关系。要在MySQL中定义这样的关系,你需要一个名为连接表的第三个表,它知道哪个用户观看了哪个电影(我称之为user_movies,但你可能想要使用不同的名字):
user_movies
user_id
movie_id
要知道谁观看了一部名为Spaceballs的电影,你需要这样的查询:
SELECT u.name FROM user u
JOIN user_movies um ON um.user_id = u.id
JOIN movie m ON um.movie_id = m.id
WHERE m.title = 'Spaceballs'