日韩天堂,国产精品久久久久久久久久一区,羞羞羞网站,自拍视频网站,久久亚洲欧美成人精品,桃花阁成人网在线观看

Hello! 歡迎來到小浪云!


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


avatar
小浪云 2024-11-11 209

如何通過一條 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,無論第三張表中是否存在記錄,都會刪除記錄。

相關閱讀

主站蜘蛛池模板: 亚洲精品高清中文字幕完整版 | 国产羞羞 | 在线成人小视频 | 免费自拍 | 一区二区精品视频 | 狠狠艹视频 | 在线播放亚洲 | 最新1024国产在线观看你懂的 | 亚州男人天堂 | 亚洲精品乱码久久久久久蜜桃欧美 | 一区二区三区四区在线不卡高清 | 伊人五月在线 | 一区二区视频在线观看 | 最新99国产成人精品视频免费 | 羞羞视频免费观看网站 | 日本视频一区在线观看免费 | 中文字幕日韩国产 | 亚洲欧美在线视频观看 | 国产精品视频公开费视频 | 国产精品成人一区二区不卡 | 五月天伊人 | 亚洲国产成人在人网站天堂 | 精品中文字幕乱码一区二区 | 永久在线视频 | 久久人人草 | 亚洲欧美中文日韩二区一区 | 亚洲四虎影院 | 亚洲一级在线观看 | 国产黄色小视频 | 丁香综合五月 | 国产精品视_精品国产免费 一色屋色费精品视频在线看 | 99精品欧美一区二区三区综合在线 | 国产成人综合亚洲一区 | 国产一二三 | 99热这里只有精品一区二区三区 | 久久久久久久国产高清 | 亚洲夜色 | 精品久久综合一区二区 | 婷婷五色 | 亚洲第一视频在线观看 | 美日韩免费视频 |