SELECT *
FROM hotel_list h
INNER JOIN tariff_chart t ON h.hotel_id = t.hotel_id
WHERE t.hotel_id = "t16"
我想在我的sql中刪除這個結果行,代碼是什麼?從連接表中刪除一個特定的行
這就是我想從hotel_list
表和tariff_chart
表,其中hotel_id="t16"
SELECT *
FROM hotel_list h
INNER JOIN tariff_chart t ON h.hotel_id = t.hotel_id
WHERE t.hotel_id = "t16"
我想在我的sql中刪除這個結果行,代碼是什麼?從連接表中刪除一個特定的行
這就是我想從hotel_list
表和tariff_chart
表,其中hotel_id="t16"
這就是我想刪除hotel_list表和 tariff_chart表,其中HOTEL_ID =「T16的所有數據刪除所有數據「
首先,我看不到爲什麼要在這裏使用join
。
您應適用於在hotel_list
表hotel_id
主關鍵字的ON DELETE CASCADE
選項,以刪除所有「子」行(外商鍵),就像一個在tariff_chart
表。
如果指定此選項,則當您刪除父表中的一行時,數據庫服務器還會刪除與該子表中的該行(外鍵)關聯的所有行。 ON DELETE CASCADE選項的優點是它允許您減少執行刪除操作所需的SQL語句的數量。
然後就去做這樣的:
DELETE FROM hotel_list WHERE HOTEL_ID = "T16";
DELETE FROM hotel_list h, tariff_chart t WHERE h.hotel_id = t.hotel_id AND t.hotel_id = "t16"
您可以檢查多桌確切語法刪除MySQL參考網站上 - http://dev.mysql.com/doc/refman/5.0/en/delete.html
在創建您的表phpMyAdmin
。您應該創建與這兩個表的關係,並在On Delete Cascade
中爲Foreign Key
創建關係。
在tariff_chart
關係視圖使On Delete Cascade
爲hotel_id
場
所以,當你永遠會在父表中刪除一條記錄將自動刪除子表中的所有子記錄
所以當運行查詢
DELETE FROM hotel_list WHERE HOTEL_ID = "T16";
將從tariff_chart
刪除所有子記錄表
DELETE hotel_list
FROM hotel_list h
INNER JOIN tariff_chart t ON h.hotel_id = t.hotel_id
WHERE t.hotel_id = "t16"