Mysql 在插入另一个';中间桌子';

Mysql 在插入另一个';中间桌子';,mysql,Mysql,所以我有两张桌子 俱乐部-身份证俱乐部、名称、国籍 及 联盟-身份证联盟、名称、国籍 他们之间是一张中间的桌子“玩” 连接俱乐部ID和联赛ID的->指定俱乐部将在哪个联赛中比赛。在通过中间表格将俱乐部插入联盟时,有没有办法检查俱乐部的国籍是否等于联盟的国籍?例如,我想确保西班牙俱乐部只能参加西班牙联赛。谢谢你的提问 有没有办法检查俱乐部的国籍是否与联赛相同 国籍 是的,在表之间执行一个简单的内部联接,如 select c.ID_Club, c.Name, c.Nationality, l.I

所以我有两张桌子

俱乐部-身份证俱乐部、名称、国籍

联盟-身份证联盟、名称、国籍

他们之间是一张中间的桌子“玩” 连接俱乐部ID和联赛ID的->指定俱乐部将在哪个联赛中比赛。在通过中间表格将俱乐部插入联盟时,有没有办法检查俱乐部的国籍是否等于联盟的国籍?例如,我想确保西班牙俱乐部只能参加西班牙联赛。谢谢你的提问

有没有办法检查俱乐部的国籍是否与联赛相同 国籍

是的,在表之间执行一个简单的
内部联接
,如

select c.ID_Club, 
c.Name, 
c.Nationality,
l.ID_league, 
l.Name
from club c join league l on c.Nationality = l.Nationality;
(或)在存在的地方使用

select c.ID_Club, 
c.Name, 
c.Nationality
from club c 
where exists(select 1 from league where c.Nationality = Nationality);

是的,但你试过什么?有点离题,但你确定这样建立这种关系是个好主意吗?如果你考虑欧洲冠军联赛和皇家马德里怎么办?冠军联赛的国籍似乎不符合你的模式。皇家马德里是西班牙人,拜仁慕尼黑是德国人,他们都参加了冠军联赛。没有什么,我甚至不知道如何开始,我知道应该使用触发器来处理这个问题,但我不知道,我想告诉你更多的细节,但正如我所说,我并不擅长这一点。篮球方面更糟糕的例子是:VTB联合联赛同时是俄罗斯最高的篮球联赛,同时在这一联赛中与白俄罗斯、芬兰、爱沙尼亚等其他国家的球队比赛。更好的建模方法是对联盟的管理机构进行建模,是的,我排除了国际比赛。作为一个semestr工作的结束,它不需要像我猜的那样详细。