所以我有这个相关的子查询,我读到这不是最有效的方法。因此,我想将此查询转换为INNER JOIN查询。
DELETE FROM tableA
WHERE EXISTS (
SELECT fieldA
FROM tableB
WHERE tableB.fieldA= tableA.fieldA)
我试过这样的事情:
DELETE a
FROM TableA a
INNER JOIN TableB b
ON a.fieldA = b.fieldA
导致Error while executing SQL query on database 'DB': near "a": syntax error
我在这里的所有搜索结果都产生了大致相同的查询(类似于我的尝试)
答案 0 :(得分:1)
您发布的内容适用于SQL Server
;对于MySQL
下面应该做的工作
DELETE tableA
FROM tableA
INNER JOIN tableB ON tableB.fieldA = tableA.fieldA;
答案 1 :(得分:-1)
DELETE a
FROM TableA a
INNER JOIN TableB b
ON a.fieldA = b.fieldA
where 1=1
尝试使用 1=1
条件。
还有 set sql_safe_updates=0;