久综合色-久综合网-玖草影视-玖草资源在线-亚洲黄色片子-亚洲黄色片在线观看

Hello! 歡迎來到小浪云!


如何通過一條 SQL 語句實現跨多表刪除相關記錄?


avatar
小浪云 2024-11-11 160

如何通過一條 SQL 語句實現跨多表刪除相關記錄?

通過單一語句實現跨多表刪除

問題:

如何通過一條 sql 語句實現從多個表中刪除相關記錄?

示例:

假設有以下三個表:

  • dish
  • dish_flavor
  • setmeal_dish

需要使用一條 sql 語句刪除 dishid 為 51 和 52 的記錄及其在 dish_flavor 和 setmeal_dish 表中的相關記錄。

嘗試的 sql 語句:

delete dish, dish_flavor, setmeal_dish from dish, dish_flavor, setmeal_dish   where dish.id = dish_flavor.id and dish.id = setmeal_dish.id and dish.id in (51, 52);
登錄后復制

執行結果:

第三張表為空,但前兩張表中的數據未刪除。

分析:

原始 sql 語句使用內連接從三張表中查找符合條件的記錄。然而,由于第三張表沒有符合條件的數據,因此內連接篩選出的記錄數為零,導致前兩張表中的數據也無法刪除。

解決方案:

要解決這個問題,可以使用左連接。左連接保證了即使在第三張表中沒有找到匹配的記錄,也可以刪除與前兩張表中符合條件的 id 關聯的記錄。

修改后的 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 );
登錄后復制

使用左連接后,只要前兩張表中有匹配的 id,無論第三張表中是否存在記錄,都會刪除記錄。

相關閱讀

主站蜘蛛池模板: 日韩成人在线观看 | 国内精品福利在线视频 | 亚洲国产情侣一区二区三区 | 精品久久久久久综合网 | 欧美激情免费观看一区 | 深夜福利视频在线观看免费播放 | 中文字幕亚洲视频 | 精品视频久久久久 | 欧美一级α片毛片免费观看 | 日韩美女视频一区 | 欧美成人性色区 | 99国产精品热久久久久久夜夜嗨 | 欧美一级视频在线 | 韩国一级理黄论片 | 日本午夜精品 | 夜鲁夜鲁夜鲁在线观看福利 | 国产成人a视频在线观看 | 欧美成人a | 中国黄色一级毛片 | 亚洲六月丁香六月婷婷蜜芽 | 色播亚洲 | www看片| 日韩在线一区二区三区免费视频 | 国产成人tv在线观看 | 亚欧视频在线观看 | 欧美黄色特级视频 | 日韩视频在线观看一区二区 | 欧美午夜不卡 | 亚洲成人福利在线 | 国产午夜人做人视频羞羞 | 国产一级精品毛片 | 99久久精品费精品国产一区二 | 国内精品久久久久久久久蜜桃 | 久久成人免费视频 | 国产国模福利视频 | 一区二区三区中文字幕 | 最刺激黄a大片免费观看下截 | 久草在线观看视频 | 黄色毛片免费在线观看 | 三级毛片免费看 | 一区二区三区在线观看免费 |