Есть 2 таблицы MariaDB (Ver 15.1 Distrib 5.5.64-MariaDB, для Linux (x86_64)):
CREATE TABLE Table1
(`phone` int, `calldate` datetime)
;
INSERT INTO Table1
(`phone`, `calldate`)
VALUES
(123, '2020-01-01 10:00:00'),
(123, '2020-01-01 11:00:00'),
(123, '2020-01-01 12:00:00')
;
CREATE TABLE Table2
(`phone` int, `calldate` datetime)
;
INSERT INTO Table2
(`phone`, `calldate`)
VALUES
( 123, '2020-01-01 09:01:00'),
( 123, '2020-01-01 09:02:00'),
( 123, '2020-01-01 10:15:00'),
( 123, '2020-01-01 10:20:00'),
( 123, '2020-01-01 10:23:00'),
( 123, '2020-01-01 11:05:00'),
( 123, '2020-01-01 11:12:00'),
( 123, '2020-01-01 11:25:00')
;
Как получить результат как: Calldate первой записи из table1 ( 2020-01-01 10:00:00) позже, чем дата вызова двух записей из таблицы2. Аналогично для второго - счет 5 (с 09:01:00 до 10:23:00), но две записи из table2 с calldate 09:01:00 и 09:02:00 уже «перекрываются» первой записью из table1, поэтому результат должен быть 3 вместо 5.
|------+----------------------+-------+
| phone | calldate | count |
|-------+---------------------+-------+
| 123 | 2020-01-01 09:02:00 | 2 |
| 123 | 2020-01-01 10:23:00 | 3 |
| 123 | 2020-01-01 11:25:00 | 3 |
|------+---------------------+|------+|
Кроме того, calldate в наборе результатов должен быть самым последним calldate из "перекрывающегося" подмножества.