簡體   English   中英

使用join獲取特定fk的記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM