2013-04-12 52 views
3

我有兩個表,分別是表X和表Y. 我想從表X中刪除列值爲x1的所有數據,並且還想從表Y中刪除列值爲x1的數據。從多表中刪除數據

我如何使用單個Delete聲明來實現此目的?

感謝

回答

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

+0

在x,y上獲取語法錯誤 – Romi

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

嘗試此查詢。

希望它有幫助。

+0

'刪除x,y從x,y ....' –

+0

@JW是不是錯誤? – Freelancer

+0

您需要指定目標表,因爲您要從多個表中刪除。 –

0

兩種方式:

  1. 使用多個DELETE語句。
  2. 對相關的InnoDb表使用外鍵的功能 - ON DELETE CASCADE從表中刪除數據的操作。在這種情況下,從父表中刪除數據就足夠了,子表中的所有相關記錄將被自動刪除。