Любые идеи относительно того, почему этот запрос не работает на mariadb? Кажется, что он соответствует шаблону на сайте документации mariadb
SELECT ... (INTERSECT | EXCEPT | UNION [ALL | DISTINCT]) SELECT ...
( SELECT t1.visitid, t1. patientid, t1.visitdate
FROM db.medi_officevisit t1
WHERE t1.visitdate = (SELECT t2.visitdate
FROM db.medi_officevisit t2
WHERE t2.PatientID = t1.PatientID and VISITdate >= '2018-01-01'
ORDER BY t2.visitID DESC
LIMIT 1) )
EXCEPT
( SELECT t1.visitid, t1. patientid, t1.visitdate
FROM db.medi_officevisit t1
WHERE t1.visitdate = (SELECT t2.visitdate
FROM db.medi_officevisit t2
WHERE t2.PatientID = t1.PatientID and VISITdate >= '2017-01-01' and VISITDATE <= '2018-01-01'
ORDER BY t2.visitID DESC
LIMIT 1) );
Код ошибки: 1064. У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса для использования рядом с 'EXCEPT (SELECT t1.visitid, t1. patientid, t1.visitdate FROM db.medi_o' в строке 8
EXCEPT
была добавлена в MariaDB версии 10.3.0. Вам нужно обновить версию MariaDB, чтобы это можно было сделать.
Если вы не можете, обратитесь к решениям в строке Return только в том случае, если значение не существует
EXCEPT
добавлено в 10.3.0. См. Mariadb.com/kb/en/library/except