我有一个名为team (id,name,...)的表我有一个名为divisions (id,name,......)的表。我希望每个团队的teams.id都在一个部门中,团队可以在多个部门中。我该如何设置?
发布于 2011-01-23 02:52:15
假设您的表如下所示
teams
-teamId
-teamName
divisions
-divisionId
-divisionName我想你要找的是一个多对多的链接表。
membership
-divisionId
-teamId这将允许您查找一个分区中的所有团队
select teamId
from team t
join membership m
on m.teamId = t.teamId
where m.divisionId = 'theIdYouWant'它还允许您想属于一个部门的任意多个团队,以及您想包含相同团队的任意多个部门。这是一个多对多的关系表。
发布于 2011-01-23 02:46:12
这是多对多关系的标准方法:创建一个单独的表teams_divisons (或divisions_teams),其中包含两个列team_id和division_id。
发布于 2011-01-23 02:45:19
您可以创建一个所谓的关系表。它是Teams表和Divisions表之间的中间表。然后我们说在Teams表(tbl_teams)和Divisions表(tbl_divisions)之间存在多对多关系。您可以在一个部门中有多个团队,在多个部门中有一个团队,或者在多个部门中有多个团队。
tbl_teams_divisions_rel
INT主键ID INT PRIMARY KEY NOT NULL AUTO_INCREMENT
然后在tbl_teams_divisions_rel.Team_ID和tbl_team.ID之间建立关系,然后在tbl_teams_divisions_rel.Division_ID和tbl_divisions.ID之间建立关系
如果您提出如何列出ID为13的特定部门中的所有团队的问题,您将执行以下操作:
SELECT tbl_teams.*
FROM
tbl_teams
INNER JOIN tbl_teams_divisions_rel ON tbl_teams_divisions_rel.Team_ID = tbl_teams.ID
WHERE tbl_teams_divisions_rel.Division_ID = 13希望它能帮上忙!
https://stackoverflow.com/questions/4769776
复制相似问题