-1
我有兩個表date_created
列和外鍵關係:獲取其相關子項ALL是否符合給定條件的父錶行?
CREATE TABLE `parent` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date_created` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
CREATE TABLE `child` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` int(11) DEFAULT NULL,
`date_created` datetime NOT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `child_ibfk_1` FOREIGN KEY (`parent_id`) REFERENCES `parent` (`id`)
) ENGINE=InnoDB;
我需要獲取僅了他們的孩子所有有少date_created
比今年一月份的父母。
我首先想到的是使用來自所有匹配此條件的孩子不同parent_id
:
select distinct parent_id
from child
where date_created < '2015-01-01'
問題是,這也與孩子們返回父母外標準:
select id, date_created
from child
where parent_id in (
select distinct parent_id
from child
where date_created < '2015-01-01'
) and date_created >= '2015-01-01'
-- 22 rows returned
嗯,也許你只需要一大杯咖啡。 – Strawberry 2015-02-09 16:23:43