首页 > 解决方案 > Mariadb except 语句错误

问题描述

关于为什么这个查询在 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 服务器版本相对应的手册,以在第 8 行的“EXCEPT (SELECT t1.visitid, t1.patientid, t1.visitdate FROM db.medi_o”附近使用正确的语法

标签: mysqlsqlmariadb

解决方案


EXCEPT在 MariaDB 版本 10.3.0 中添加。您需要升级您的 MariaDB 版本才能执行此操作。

如果不能,请仅在值不存在时查看返回行中的解决方案


推荐阅读