通過單語句在 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