Переместить другую дату туда, где предложение
Текущий тест: http://sqlfiddle.com/#!9/ee7ffb/1
CREATE TABLE `match`
(`id` int, `datetime` datetime)
;
INSERT INTO `match`
(`id`, `datetime`)
VALUES
(2864049, '2019-04-03 00:00:00'),
(2864050, '2019-04-03 00:00:00'),
(2864051, '2019-04-03 00:00:00'),
(2864052, '2019-04-03 00:00:00'),
(2864053, '2019-04-03 00:00:00'),
(2864054, '2019-04-03 00:00:00')
;
SELECT m.id, `datetime`
FROM
`match` `m`
left join
(SELECT 2864049 as match_id, CAST("2019-04-03 00:00:00" AS DATETIME) AS match_datetime UNION ALL
SELECT 2864050 as match_id, CAST("2019-04-03 00:00:00" AS DATETIME) AS match_datetime UNION ALL
SELECT 2864051 as match_id, CAST("2019-04-03 00:00:00" AS DATETIME) AS match_datetime union all
SELECT 2864052 as match_id, CAST("2019-04-04 00:00:00" AS DATETIME) AS match_datetime union all
SELECT 2864054 as match_id, CAST("2019-04-03 00:00:00" AS DATETIME) AS match_datetime
) mm
on m.id = mm.match_id
WHERE
mm.match_id IS NULL -- not existing
or m.datetime <> mm.match_datetime -- move to where clause
Вывод:
| id | datetime |
|---------|----------------------|
| 2864052 | 2019-04-03T00:00:00Z |
| 2864053 | 2019-04-03T00:00:00Z |
2864052, несмотря на наличие соответствующего идентификаторапоскольку его дата и время отличаются от мм
2864053, так как он не существует в мм