[英]using join to get records of a specific fk
我有一個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
想要確保此查詢在某些情況下可以解決:)
謝謝!
對我來說,我看到ParentAndContact表是多余的。 通常,“父母”詳細信息在一個表中,而“聯系人ID /孩子”詳細信息在另一個表中(具有屬性,例如,孩子注冊的課程,孩子的詳細信息)。
假設您想從可用表(ParentsSchoolContact,ParentAndContact)中獲取具有其ID的特定父級的所有聯系人 , 則只需編寫一個簡單的查詢即可從ParentsSchoolContact表中檢索信息,如下所示 :-
select contactId, parentId, name, age
from ParentsSchoolContact
where parentId = myParentVariable
讓我知道我是否錯過任何事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.