我有一个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
希望确保此查询在某种情况下不受影响,您可以考虑:)
谢谢!
1条答案
按热度按时间mrphzbgm1#
对我来说,parentandcontact表是多余的。通常,父母的详细信息在一个表中,联系人ID/孩子的详细信息在另一个表中(具有属性,例如孩子注册的课程,孩子的详细信息)。
假设您想从可用的表(parentsschoolcontact,parentandcontact)中获取与特定父级相关的所有联系人,您可以编写一个简单的查询,从parentsschoolcontact表中检索信息below:-
如果我错过了什么,一定要告诉我。