从多个表中删除数据

时间:2013-04-12 06:21:12

标签: sql sql-server-2008

我有两张桌子,比如桌子X和桌子Y. 我想删除表X中列值为x1的所有数据,并且还希望从表Y中删除列值= x1的数据。

如何使用单个Delete语句实现此目的?

由于

3 个答案:

答案 0 :(得分:2)

由于您要从多个表中删除,因此应指定要删除的表,这样就不会出现语法错误。

DELETE x, y
FROM   x INNER JOIN y ON x.Col = y.Col
WHERE  x.Col = 'x1'

http://www.sqlfiddle.com/#!2/00ab7/1

答案 1 :(得分:1)

delete x,y from x,y where x.colname='x1' and y.colname='x1'

尝试此查询。

希望它有所帮助。

答案 2 :(得分:0)

两种方式:

  1. 使用多个DELETE语句。
  2. 对相关的InnoDb表使用外键功能 - ON DELETE CASCADE 操作从表中删除数据。在这种情况下,从父表中删除数据就足够了,子表中的所有相关记录都将被自动删除。