2012-06-14 43 views
0

下面的查詢不工作。請告訴我什麼是錯here.Its給錯誤報告:SQL錯誤:ORA-00933:SQL命令不能正確地結束00933. 00000 - 「SQL命令不能正確地結束」 。我試圖一次刪除兩個表中的數據。問題刪除查詢

delete t1,t2 from x t1 inner join y t2 on t1.id=t2.id where t1.id in 
(SELECT object_id FROM z WHERE name = 'YourName'); 
+1

的錯誤是從Oracle,但標籤上是MySQL的 –

+0

亞我已經編輯,我們不能加入並如上進行標籤 – harqs

回答

0

我想你不能同時從兩個表中刪除數據。你將不得不使用2個查詢。使用事務可能有助於您的模型的一致性。

+0

? – harqs

+0

不,你不能:)你必須使用盡可能多的查詢作爲表,但這不是一個問題!這是完全正常的,不要害怕對性能的影響!只需將它們嵌入到事務中即可確保數據庫的一致性。 –

2

在一次查詢中一次刪除兩個表中的數據?不可能。

+0

我想從3個表中刪除如何執行此操作? IM使用Oracle SQL和MyBatis的,我想從z_table x_table和y_table其中id =選擇ID刪除其中obj_id =「1234」也同時我想從USER_TABLE ID刪除 =選擇從z_table id其中obj_id =「1234 「和user_id說明!=在(從MAIN_TABLE選擇用戶ID) 總之我想從3個表中刪除的行x_table,y_table和USER_TABLE對於給定 – harqs

+0

使用存儲過程。 – Luftwaffe

+0

如何爲此編寫存儲過程。我有一個單獨的職位這個請回復http://stackoverflow.com/questions/11033101/procedure-to-perform-delete-operation – harqs

0

如果T1和T2是內加入,那麼你的選擇是做參考ON DELETE CASCADE,所以你只需要刪除父行自動刪除所有的孩子。

rgds。