2017-07-18 66 views
-2

我有两张表,我想从表A中删除表B中的数据,请问我该怎么做?基于其他表删除表

+0

为什么-2请帮助我 –

+0

您使用的是什么SQL方言/数据库?你试过什么了? –

回答

0

首先,这个网站是不是免费的代码送礼者。你必须提供你所尝试的,我们会帮助你。其次,你需要澄清你想要的东西......在你的问题中,你标记了多种SQL语言。

要执行此操作,可以使用许多技巧中的两种: - 相关的子查询和内部连接。

相关子查询

DELETE FROM tableA WHERE EXISTS (SELECT field FROM tableB WHERE tableB .field = tableA.field) 

这适用于SQL SERVER(T-SQL),我相信也是MySQL的。

内连接 - 最有效的在我看来

DELETE a 
FROM TableA a 
INNER JOIN TableB b 
ON a.fieldA = b.fieldA 

再次,适用于SQL Server中,我相信也为MySQL

从你自己的一些进一步的研究肯定会给你更多详细资料。

+0

谢谢,但什么是相关的子查询 –

+0

@AliceSmith再次,谷歌是你最终的朋友在这里! https://technet.microsoft.com/en-us/library/ms187638(v=sql.105).aspx –

+0

非常感谢你确实 –

0

试试这个

Delete from TAble A WHERE EXISTS(
    SELECT 1 from TABLE B WHERE B.ID=A.id) 
+0

嗨,谢谢你能解释我的作业吗? –

0

您是否知道您可以在DELETE语句中使用JOIN?

delete a 
from TableA a 
inner join TableB b on (a.id=b.id) 
+0

你怎么做这个解释plese –