如何通過單條 SQL 語句從三張表中刪除與指定 ID 相關的記錄?

如何通過單條 SQL 語句從三張表中刪除與指定 ID 相關的記錄?

通過單語句在 sql 中實現多表刪除

問題:

如何編寫一條 sql 語句,以便從三張表中刪除與指定 id 相關的記錄?

嘗試過的解決方案:

查詢資料和 chatgpt

問題所在:

原始 sql 語句使用內連接,不能在第三張表為空的情況下刪除其他表中的記錄。

解決方案:

使用左連接代替內連接。修改后的 sql 語句如下:

DELETE dish, dish_flavor, setmeal_dish FROM     dish     LEFT JOIN dish_flavor ON dish.id = dish_flavor.id     LEFT JOIN setmeal_dish ON dish.id = setmeal_dish.id WHERE     dish.id IN (51, 52);

改進后的 sql 語句說明:

使用左連接允許在第三張表為空時刪除其他表中的記錄。left join 確保匹配的記錄被刪除,而其他記錄保持不變。

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享