过去你们都得到了很大帮助,我正在努力解决问题,所以我有一个问题。
我的SQL数据库中有3个表,称为“Child”,“Parents”和“Family”。表格的结构如下所示。
以下是父母,子女和家庭表中的一些示例数据。
Family.ChildID与Child表中的ID对应,因此Child.ID是主键,Family.ChildID是外键。这同样适用于Family.ParentID和parents.ID
我想要做的是选择子表和父表中的所有字段,然后选择族表中的“关系”字段。但是条件是我提供了ChildID,我希望通过匹配族表中的子ID和父ID来选择相应的父。
示例:
SELECT *
FROM Parents, Child, Family
WHERE (Child.ID = 1 AND (Family.ChildID = 1 AND Parents.ID = Family.ParentID)
我希望这有点道理..如果您有任何疑问,请告诉我。
由于
答案 0 :(得分:2)
您想使用JOIN将表链接在一起。您需要将子表连接到族表,将族表连接到父表。类似的东西:
Select c.*, p.*, f.relation from child c
Left Join family f on f.child_id = c.id
Left Join parent p on f.parent_id = p.id
Where c.id = 1
答案 1 :(得分:1)
试试这个:
SELECT Parents.*, Child.*, Relation
FROM FAMILY
INNER JOIN Parents ON Family.ParentID = Parents.ID
INNER JOIN Child ON Family.ChildID = Child.ID
您可能需要使用LEFT OUTER JOIN
代替INNER
。