比较我的数据库中多对多关系中的值

时间:2017-05-20 09:24:28

标签: mysql database relationships erd

我正在尝试比较我的两个表中的数据,这些表由一个复合表连接,因为它们是多对多的关系。

我有会员,我有中心。会员可以参加很多中心,一个中心可以有很多会员,所以我在中间有一个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不够具体?

以下是我的数据库的屏幕截图。 enter image description here

1 个答案:

答案 0 :(得分:0)

中心 memberID 成员表)没有任何直接关系。将成员表与中心表相关联的表格是 memberattendscenter ,我无法在您的查询中看到它。我认为您应该在查询中的表 memberattendscenter 加入

此外,正如其他人所说,我认为 memberattendscenter 和成员表应该有一个单独的主键列。