mysql> create table tasks -> (id int,mid int,s int,e int,`date` datetime); Query OK, 0 rows affected (0.06 sec) mysql> insert into tasks -> (id,mid,s,e,`date`) -> values -> (1,15,1,3,'2017-01-17 00:00:00'), -> (2,15,1,4,'2017-01-24 00:00:00'), -> (3,20,2,6,'2017-01-23 00:00:00'), -> (4,20,2,7,'2017-02-02 00:00:00'), -> (5,20,2,8,'2017-02-07 00:00:00'), -> (6,34,3,5,'2016-12-31 00:00:00'); Query OK, 6 rows affected (0.00 sec) Records: 6 Duplicates: 0 Warnings: 0 mysql> SELECT t1.* -> FROM `tasks` t1 -> INNER JOIN ( -> SELECT `mid`, MAX(`date`) AS `date` -> FROM `tasks` -> WHERE `DATE` > CURDATE() AND `DATE` < ADDDATE(CURDATE(), 14) -> GROUP BY `mid` -> ) t2 ON t1.`mid` = t2.`mid` AND t1.`date` = t2.`date`; +------+------+------+------+---------------------+ | id | mid | s | e | date | +------+------+------+------+---------------------+ | 2 | 15 | 1 | 4 | 2017-01-24 00:00:00 | | 3 | 20 | 2 | 6 | 2017-01-23 00:00:00 | +------+------+------+------+---------------------+ 2 rows in set (0.03 sec) mysql> SELECT t1.* -> FROM `tasks` t1 -> INNER JOIN ( -> SELECT `mid`, MAX(`date`) AS `date` -> FROM `tasks` -> WHERE /* `DATE` > CURDATE() AND */ `DATE` < ADDDATE(CURDATE(), 14) -> GROUP BY `mid` -> ) t2 ON t1.`mid` = t2.`mid` AND t1.`date` = t2.`date`; +------+------+------+------+---------------------+ | id | mid | s | e | date | +------+------+------+------+---------------------+ | 2 | 15 | 1 | 4 | 2017-01-24 00:00:00 | | 3 | 20 | 2 | 6 | 2017-01-23 00:00:00 | | 6 | 34 | 3 | 5 | 2016-12-31 00:00:00 | +------+------+------+------+---------------------+ 3 rows in set (0.00 sec) mysql> SELECT t1.* -> FROM `tasks` t1 -> INNER JOIN ( -> SELECT `mid`, MAX(`date`) AS `date` -> FROM `tasks` -> GROUP BY `mid` -> HAVING /* `DATE` > CURDATE() AND */ MAX(`DATE`) < ADDDATE(CURDATE(), 14) -> ) t2 ON t1.`mid` = t2.`mid` AND t1.`date` = t2.`date`; +------+------+------+------+---------------------+ | id | mid | s | e | date | +------+------+------+------+---------------------+ | 2 | 15 | 1 | 4 | 2017-01-24 00:00:00 | | 6 | 34 | 3 | 5 | 2016-12-31 00:00:00 | +------+------+------+------+---------------------+ 2 rows in set (0.00 sec) mysql>
То есть из варианта выше необходимо получить mid 15 и 34Are you sure about mid = 34? - korytoff