我有4个为我自动生成的表:
一个用户可能有很多挑战,一个挑战将有很多练习。
我注意到Challenge表中有一个对它的父用户(称为user_id)的引用,但是练习在它的表中没有引用Challenge;他们的关系作为Challenge_id和exercise_id存储在Challenge_Exercise中。
我的问题是,我如何取出与特定用户相关的每项练习?例如,id = 1的用户?
答案 0 :(得分:0)
SELECT *
FROM excerise,
challenge_excerise,
challenge
WHERE challenge.user_id = 1
AND challenge_excerise.challenge_id = challenge.id
AND challenge_excerise.exercise_id = excercise.id
我在这里做的是join
,您也可以使用inner joins
明确地执行此操作(如果您想了解更多信息,可以使用谷歌)。
这个表是必需的,因为你有一个many to many
关系,这意味着每个挑战可以有多个练习,但每个练习都有多个挑战。这是制作额外表格的标准,因此您没有冗余数据,此表通常称为junction table
。
如果你想要背景只是google它,那么这个话题就有很多数据。