2012-04-10 49 views
0

我想刪除三行,從三個不同的表。這是我的查詢,但它似乎沒有工作。的MySQL從多個表中刪除一個變量

CREATE PROCEDURE `DB`.`deleteArticle` (IN x INT) 
BEGIN 

DELETE FROM articles 
where article_id=x; 

DELETE FROM AUTHORS 
where submission_id = select submission_id from article_files where article_id=X; 

DELETE FROM article_files 
where article_id=X; 

END 
+4

「它似乎沒有工作」 是什麼不起作用?錯誤?你期望它刪除什麼?謹慎地顯示你的表中的一些數據? – ManseUK 2012-04-10 13:23:10

+0

你必須在最後一個塊一個錯字(DLETE應該是delete)\ – Manuel 2012-04-10 13:25:50

+0

@ dragon112對不起,這是一個類型,而鍵入查詢。 – SupaOden 2012-04-10 13:26:52

回答

2

試試這個

CREATE PROCEDURE `DB`.`deleteArticle` (IN x INT) 
BEGIN 

DELETE FROM articles 
WHERE article_id=x; 

DELETE FROM AUTHORS 
WHERE submission_id IN (SELECT submission_id FROM article_files WHERE article_id=X); 

DELETE FROM article_files 
WHERE article_id=X; 

END