我正在尝试比较我的两个表中的数据,这些表由一个复合表连接,因为它们是多对多的关系。
我有会员,我有中心。会员可以参加很多中心,一个中心可以有很多会员,所以我在中间有一个composit表,其中包含memberID和CentreId
现在当我试图找到所有参加中心1的成员时,例如我假设id做了这样的事情:
SELECT members.FirstName
, centre.CentreLocation
From centre JOIN members
WHERE centre.CentreID = 1
这会让我:
FirstName CentreLocation
John Gladsaxe
Mikkel Gladsaxe
Kim Gladsaxe
继续通过我的整个数据库获取所有名字并一遍又一遍地重复中心。我假设它是获得所有成员,并且每个成员再次获得中心,因为ID为1,即使并非所有这些成员都参加该中心。
我在关系设计方面做错了什么,或者我的SQL不够具体?
答案 0 :(得分:0)
表中心与 memberID (成员表)没有任何直接关系。将成员表与中心表相关联的表格是 memberattendscenter ,我无法在您的查询中看到它。我认为您应该在查询中的表 memberattendscenter 上 加入 。
此外,正如其他人所说,我认为 memberattendscenter 和成员表应该有一个单独的主键列。