我们在两个表中有一个父子关系:
u2028子表:u2028
CREATE TABLE child (
`id` int(11) NOT NULL AUTO_INCREMENT,
`direct_parent_id` int(11) DEFAULT NULL,
KEY `direct_parent_id_child_fk` (`direct_parent_id`),
CONSTRAINT `direct_parent_id_child_fk` FOREIGN KEY (`direct_parent_id`) REFERENCES `child` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION
);
id | direct_parent_id |
---|---|
100 | 100 |
200 | 100 |
300 | 200 |
查询parents
表中parent_id
高于direct_parent_id
但不是child_id
本身的所有记录
SELECT p.child_id, p.parent_id FROM parents p, children c
where p.child_id = c.id
and p.parent_id > c.direct_parent_id
and p.parent_id != p.child_id