2017-06-12 47 views
-2

我想查詢,幫助我刪除一個記錄點擊其實數據來自兩個不同的表,我加入兩個使用內部連接和顯示在桌子上現在我創建一個刪除按鈕並希望一個查詢刪除點擊完成的行。需要查詢刪除記錄多個表

有人告訴我,我們同時應用兩個查詢,我嘗試了太多,但無法理解。我對數據庫沒有深入的瞭解,我是新手。

回答

0

DELETE t1,t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id = t2.id AND t2.id = t3.id;

0

您應該在這兩個表之間設置級聯刪除的關係。完成之後,您只需刪除主表條目,其餘工作將自動完成。您不需要運行兩個查詢來刪除。

+0

你是對的,但現在的問題是我不擅長數據庫關係 –

0

我這裏有2個示例表:

MariaDB [Test_delete_query]> select * from tbl1; 
+----+--------------+ 
| id | student_name | 
+----+--------------+ 
| 1 | Tom   | 
| 2 | Emily  | 
+----+--------------+ 
2 rows in set (0.00 sec) 

MariaDB [Test_delete_query]> select * from tbl2; 
+----+------------+-------------+ 
| id | student_id | course_name | 
+----+------------+-------------+ 
| 1 |   1 | Mathematic | 
| 2 |   1 | History  | 
+----+------------+-------------+ 
2 rows in set (0.00 sec) 

它可以刪除湯姆使用下面的SQL查詢他的課程:

delete tbl1.*, tbl2.* from tbl1 join tbl2 on (tbl1.id = tbl2.student_id) where tbl1.id = 1; 

但作爲@穆克什 - dhisale說你應該在兩個表之間設置級聯刪除的關係,因此當您刪除主記錄時,它的子項將自動從其他表中刪除。 @ marc-b認爲我們如何設置我們的桌子來做到這一點here

+0

我知道,但我的問題是我對數據庫關係知之甚少。 你能指導我嗎? –

+0

@AwaisButt看看[這篇文章](https://stackoverflow.com/questions/2914936)。你會在那裏找到有用的提示。如果您有其他問題,請不要猶豫,再問一次。 –

+0

這裏是我運行此查詢時出錯... 「MULTI DELETE中的未知表'tab_issueid'」 –