如何编写MySQL 5.7查询来查找两个关系之间不一致的数据



我们在两个表中有一个父子关系:

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
);
iddirect_parent_id
100100
200100
300200

查询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

最新更新