【发布时间】:2012-10-26 05:29:50
【问题描述】:
我觉得这一定是个经典问题,但我找不到答案。
我有一个表格 Person,其中包含描述一个人的基本细节。然后,我有一个 ParentChildRelationship 表,看起来像这样:
CREATE TABLE `ParentChildRelationship` (
`ParentId` INT(10) UNSIGNED NOT NULL,
`ChildId` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY(ParentId,ChildId),
CONSTRAINT `FK_ParentRelationship`
FOREIGN KEY (`ParentId` )
REFERENCES `Person` (`idPerson` ),
CONSTRAINT `FK_ChildRelationship`
FOREIGN KEY (`ChildId` )
REFERENCES `Person` (`idPerson` )
);
我需要一个选择查询,它只返回树中父级和所有子级的所有人员记录。
例如,使用以下数据:
Parent Child
1 3
1 8
2 4
3 5
3 6
6 9
4 7
选择 ParentId = 1 OR ChildId 在树中的所有 Person 记录下面 ParentId 为 1。此查询应返回 Person 信息 (SELECT * FROM Person...)以下 PersonId:
1,3,8,5,6,9
我不知道这是否重要,但是这些返回的顺序无关紧要,因为我需要根据“姓氏”之类的内容进行排序。换句话说,结果也可能是 1,3,5,6,9,8。
【问题讨论】:
标签: mysql relationship