【发布时间】:2021-07-03 11:45:36
【问题描述】:
我有一个数据库,它基本上存储了由几个家庭组成的家谱。
我有两张桌子:
- “persons”:id、name、lname
- “关系”:父母、子女
显示所有父母没问题,我这样做了:
SELECT DISTINCT p.fname, p.lname
FROM persons p
INNER JOIN relationships ON p.id = relationships.p
INNER JOIN persons c ON c.id = relationships.c;
但我怎样才能全面展示每个孩子及其各自的兄弟/姐妹呢?
我在很多东西中的一个选择中尝试了一个选择,但它不起作用:
SELECT DISTINCT
c1.name,
c1.lname,
(
SELECT
c2.firstname,
c2.lastname
FROM
persons p2
INNER JOIN relations ON p2.id = relations.parent
INNER JOIN persons c2 ON c2.id = relations.child
WHERE
p.id = p2.id
)
FROM
persons p
INNER JOIN relations ON p.id = relations.parent
INNER JOIN persons c1 ON c1.id = relations.child;
我认为我走错了路。
感谢您的帮助。
【问题讨论】:
标签: sql foreign-keys inner-join