我有一个数据库,基本上存储由几个家庭组成的家谱。
我有两张桌子:
- "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;
我想我走错了路。
谢谢你的帮助。