使用内部联接删除
Posted
技术标签:
【中文标题】使用内部联接删除【英文标题】:Delete using Inner Joins 【发布时间】:2017-12-22 01:59:07 【问题描述】:所以我有这个相关的子查询,我读到这不是解决这个问题的最有效方法。因此,我想将此查询转换为 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
我在这里的所有搜索结果都产生了大致相同的查询(类似于我尝试过的)
【问题讨论】:
***.com/questions/16481379/… mysql 还是 SQL-Server? @Jens 两位请 您发布的内容应该可以在 sql server 中完美运行。 @SeanLange 也许那个错误来自 MySQL? 【参考方案1】:您发布的内容适用于SQL Server
;对于下面的MySQL
应该可以完成这项工作
DELETE tableA
FROM tableA
INNER JOIN tableB ON tableB.fieldA = tableA.fieldA;
【讨论】:
@rahul 你认为它有什么效果吗?即使使用别名也可以正常工作。以上是关于使用内部联接删除的主要内容,如果未能解决你的问题,请参考以下文章