3

我有两个表,说表 X 和表 Y。我想从表 X 中删除列值 = x1 的所有数据,还想从表 Y 中删除列值 = x1 的数据。

我如何使用单个Delete语句来实现这一目标?

谢谢

4

3 回答 3

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

于 2013-04-12T06:32:59.620 回答
1
delete x,y from x,y where x.colname='x1' and y.colname='x1'

试试这个查询。

希望它有帮助。

于 2013-04-12T06:22:41.980 回答
0

两种方式:

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