原因:MySQL5.7中libuibase.exception.databaseexception with delete语句

jgwigjjp  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(271)

我一直在尝试在MySQL5.7中执行以下查询。

DELETE FROM tablename1 T1
WHERE EXISTS (
SELECT *
FROM tablename1 T2
WHERE T2.code = T1.code
AND T2.dname = T2.dname
AND T2.created_date > T1.created_date
);

但它给了我一个错误:原因:liquibase.exception.databaseexception:您的sql语法有错误;检查与mysql服务器版本对应的手册,以获得在't1'附近使用的正确语法
这个查询在oracle中运行得很好,但由于某些原因,在MySQL5.7中“alias”不起作用。无论如何,我可以在MySQL5.7版本中修复这个问题。
提前谢谢。

kdfy810k

kdfy810k1#

我很确定问题不在别名上,但是在子查询要从中删除的表时,请尝试此操作。

DELETE T1
FROM tablename1 AS T1 
INNER JOIN tablename1 AS T2 
   ON T2.code = T1.code
   AND T2.dname = T2.dname
   AND T2.created_date > T1.created_date
;

我也不确定它是否有效,因为它仍然引用delete主题两次;但值得一试。

相关问题