我有一个ParentsSchoolContact表,其中parentId具有parentId的外键:
CREATE TABLE ParentsSchoolContact (
contactId int NOT NULL AUTO_INCREMENT,
parentId int NOT NULL,
name varchar(60) NOT NULL,
age varchar(60) NOT NULL,
PRIMARY KEY (contactId),
FOREIGN KEY (parentId) REFERENCES Parent(parentId)
);
我有一个父和联系人表来保持孩子和父母之间的关系:
CREATE TABLE ParentAndContact (
parentId int NOT NULL,
contactId int NOT NULL,
PRIMARY KEY (contactId, parentId)
);
我希望获得与我拥有其ID的特定父级相关的所有联系人,这是正确的查询吗?
SELECT c.name, c.age
FROM ParentsSchoolContact c
INNER JOIN ParentAndKid pc ON pc.contactId = c.contactId
AND c.parentId = myParentVariable
AND pc.parentId = myParentVariable
希望确保此查询剂量在某些情况下可以考虑:)
谢谢!
答案 0 :(得分:0)
对我来说,我看到ParentAndContact表是多余的。通常,父母详细信息在一个表中,ContactID / Kids详细信息在另一个表中(具有属性,例如,孩子注册的课程,孩子的详细信息)。
假设您希望从可用表(ParentsSchoolContact,ParentAndContact)获取与您具有其ID的特定父级相关的所有联系人,您只需编写一个简单的查询即可从ParentsSchoolContact表中检索信息,如下所示< - em>: -
select contactId, parentId, name, age
from ParentsSchoolContact
where parentId = myParentVariable
如果我错过了什么,请告诉我。