2013-04-02 31 views
1

我想從兩個MySQL表刪除:與同image_id和pair_id ID的MySQL的交叉表中刪除

1) table_images.image_id 
2) table_images_links.pair_id 

而且table_images_links.il.object

1) table_images 
2) table_images_links 

所有行條目對於此ID應該完全等於 「貓」

我的查詢是:

mysql_query(" 
DELETE FROM table_images im, table_images_links il 
WHERE im.image_id = il.pair_id 
AND il.object = 'cat' 
"); 

問題是在此查詢運行後沒有任何事發生。

我的問題是:我怎麼能跟蹤這一點,並使查詢符合我的需求。

謝謝!

+0

你有沒有做正確的錯誤處理,例如_asked_數據庫查找它在嘗試執行查詢時可能遇到的錯誤?你是否使用phpMyAdmin這樣的前端嘗試了這個查詢,並且得到了什麼結果? – CBroe

回答

2

在連接DELETE語句中的表時,您需要指定要刪除行的表。在這種情況下,請使用表名中給出的ALIAS

DELETE im, il     -- this will delete row in both tables. 
FROM table_images im, table_images_links il 
WHERE im.image_id = il.pair_id AND 
     il.object = 'cat' 

DELETE im, il     -- this will delete row in both tables. 
FROM table_images im 
     INNER JOIN table_images_links il 
      ON im.image_id = il.pair_id AND 
       il.object = 'cat' 
+0

是的!!! DELETE即時通訊,這正是它應該如何工作!謝謝你的提示! –

+0

它會在兩個表中刪除。如果你只想要1,那麼指定一個表,例如'DELETE im' .. –