当前使用版本(必填,否则不予处理)

3.3.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

一个正常sql在mp中报错了

重现步骤(如果有就写完整)

写了个sql发现报错了 错误日志打印出的sql放在mysql8里面执行也正常,后面发现时select xx from left join ( WITH t AS XXX)on ...就会 如果开头就是WITH t AS XXX则不会报错

报错信息

The error occurred while executing a query

Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Method queryTotal execution error of sql :

SELECT COUNT(1) FROM ( SELECT a.id,a.quality_task_id,a.publish_time, b.code,b.check_type,b.parameter_ids,b.parameter_names, b.year,b.MONTH,b.frequency,b.site_id,b.site_name,b.device_ids,b.device_names, b.monitor_lab_id,b.monitor_lab_name,b.surveyor_ids,b.surveyor_names,b.NAME FROM dm_data_quality_control a LEFT JOIN ( WITH t AS ( SELECT t.id, t.CODE, t.NAME, t.frequency, t.YEAR, t.MONTH, t.state, t.check_type, site_id, site_name, monitor_lab_id, monitor_lab_name, i.proc_inst_id, i.user_id, i.user_group FROM bs_data_quality_control_task t LEFT JOIN bs_quality_task_proc_inst i ON t.id = i.quality_task_id WHERE t.enabled = 1 AND t.state = '03' ) SELECT t.id AS link_id, t.CODE, t.NAME, t.frequency, t.YEAR, t.MONTH, t.state, t.check_type, site_id, site_name, monitor_lab_id, monitor_lab_name, t.proc_inst_id, t.user_id, t.user_group, p.parameter_ids, p.parameter_names, ts.surveyor_ids, ts.surveyor_names, td.device_ids, td.device_names FROM t LEFT JOIN ( SELECT group_concat( p.parameter_id ) parameter_ids, group_concat( p.parameter_name ) parameter_names, p.quality_task_id FROM bs_quality_task_parameter p, t WHERE t.id = p.quality_task_id GROUP BY p.quality_task_id ) p ON p.quality_task_id = t.id LEFT JOIN ( SELECT group_concat( ts.surveyor_id ) surveyor_ids, group_concat( ts.surveyor_name ) surveyor_names, ts.quality_task_id FROM bs_quality_task_surveyor ts, t WHERE ts.quality_task_id = t.id GROUP BY ts.quality_task_id ) ts ON ts.quality_task_id = t.id LEFT JOIN ( SELECT group_concat( td.id ) device_ids, group_concat( td.NAME ) device_names, td.quality_task_id FROM bs_quality_task_device td, t WHERE t.id = td.quality_task_id GROUP BY td.quality_task_id ) td ON td.quality_task_id = t.id GROUP BY t.id ) b ON a.quality_task_id = b.link_id

    ORDER BY publish_time DESC ) TOTAL

Comment From: miemieYaho

https://mybatis.plus/guide/interceptor.html

Comment From: CrookedSmile

mp 版本 3.3.2 报错sql: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

Error querying database. Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Method queryTotal execution error of sql : SELECT COUNT(1) FROM x WHERE (a IN (?, ?, ?) AND b IN (?) AND c IN (?)) The error may involve defaultParameterMap The error occurred while setting parameters Cause: com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error: Method queryTotal execution error of sql : SELECT COUNT(1) FROM x WHERE (a IN (?, ?, ?) AND b IN (?) AND c IN (?))

参数均有值,尝试过升级 mp 和 mysql driver 版本,仍有问题

Comment From: buildfun

看一下是不是表名的问题

Comment From: yasuo-deng

老铁,这个问题解决了吗