2011-02-11 31 views
3

下面的SELECT查询工作正常:对矫正选择查询,删除查询

SELECT * FROM JBPM_JOB job WHERE job.ACTION_ IN (SELECT ID_ from JBPM_ACTION WHERE ACTIONEXPRESSION_ LIKE '%#{reminderAction.addAsyncProcessReminder%warning%'); 

然而,当我尝试删除此检索的行,它失败

DELETE FROM JBPM_JOB job WHERE job.ACTION_ IN (SELECT ID_ from JBPM_ACTION WHERE ACTIONEXPRESSION_ LIKE '%#{reminderAction.addAsyncProcessReminder%warning%'); 

这里有什么问题?

的错误信息是:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'job WHERE job.ACTION_ IN (SELECT ID_ from JBPM_ACTION WHERE ACTIONEXPRESSION_ LI' at line 1

+0

什么是错误信息? – StuartLC 2011-02-11 10:34:34

+0

如果遇到任何问题,请发布错误消息 – 2011-02-11 10:34:40

回答

1

你需要指定你是从别名表中删除,所以要用:

DELETE job FROM JBPM_JOB job WHERE job.ACTION_ IN (SELECT ID_ from JBPM_ACTION WHERE ACTIONEXPRESSION_ LIKE '%#{reminderAction.addAsyncProcessReminder%warning%'); 
0

我已经测试了在SQL Server查询。工作正常,但有可能您删除的值与PK和FK等其他表有某种关系。

如果他们有,那么你必须删除这些表中的记录太...... ..........