我有两个表表1 和表2 。这两个表都具有相同的结构。我想要做的就是从 Table1 中删除那些记录,其中两列(比如A和B)中的值都与 Table2 中的值相同。
因此,如果 Table2 中有记录,其中A和B的值分别为12和24,那么 Table1 中的记录包含相同的值在那些相应的列中需要删除。
答案 0 :(得分:1)
使用以下查询:
DELETE FROM Table1
WHERE EXISTS
(
SELECT 1 FROM Table2 WHERE Table1.A = Table2.A AND Table1.B = Table2.B
)
答案 1 :(得分:1)
DELETE FROM table1, table2 WHERE table1.A = table2.A AND table1.B = table2.B
DELETE命令默认删除指定表中的所有记录。 所以我们必须添加一个WHERE子句,告诉查询对特定的列A和B进行操作,这两个列都存在于table1和table2中。 我们可以使用"点符号":
引用特定表的列table_name.column_name
您可以在此设置任何条件,例如"等于","不等于","小于","是大于"等等...,只要是正确的并且对查询有意义。所以,我们只需添加:
table1.A = table2.A
可以使用逻辑运算符组合多个条件,例如AND,OR和XOR。所以,正如你的问题所说,A列和B列中的值必须相等,所以我们添加另一个条件,用AND运算符连接它们,因为所有这两个条件都必须为真!