九色91_成人精品一区二区三区中文字幕_国产精品久久久久一区二区三区_欧美精品久久_国产精品99久久久久久久vr_www.国产视频

Hello! 歡迎來到小浪云!


如何通過一條 SQL 語句實現(xiàn)跨多表刪除相關(guān)記錄?


avatar
小浪云 2024-11-11 185

如何通過一條 SQL 語句實現(xiàn)跨多表刪除相關(guān)記錄?

通過單一語句實現(xiàn)跨多表刪除

問題:

如何通過一條 sql 語句實現(xiàn)從多個表中刪除相關(guān)記錄?

示例:

假設(shè)有以下三個表:

  • dish
  • dish_flavor
  • setmeal_dish

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

嘗試的 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);
登錄后復(fù)制

執(zhí)行結(jié)果:

第三張表為空,但前兩張表中的數(shù)據(jù)未刪除。

分析:

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

解決方案:

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

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

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

相關(guān)閱讀

主站蜘蛛池模板: 国产精品欧美一区二区三区不卡 | 精品欧美一区二区三区免费观看 | 亚洲性人人天天夜夜摸 | 黄色在线免费观看 | 国产无套一区二区三区久久 | 亚洲成人一区二区 | 亚洲国产一区二区三区在线观看 | 国产一区二区在线免费 | 欧美a级成人淫片免费看 | 国产精品久久久久aaaa樱花 | 日韩一级免费电影 | 一区免费 | 亚洲一区二区三区四区五区午夜 | 国产精品久久久久久妇女6080 | 一级毛片黄片 | 亚洲一区二区三区四区五区中文 | 国产欧美精品在线观看 | 久久久爽爽爽美女图片 | 亚洲精品久久久一区二区三区 | 亚州国产 | 久久久精品国产 | 久久婷婷香蕉热狠狠综合 | 国产成人99久久亚洲综合精品 | 久久综合九色综合欧美狠狠 | 一区二区电影网 | 国产欧美综合在线 | 色视频网站 | 九九热这里只有精品在线观看 | 欧美精品日韩精品国产精品 | 午夜精品一区二区三区在线视 | 国产sm主人调教女m视频 | 国产a视频 | 在线播放一区二区三区 | 成人国产精品久久久 | 日韩精品一区二区三区中文字幕 | 亚洲综合婷婷 | 欧美成人a | 国产精品久久久久久中文字 | 欧美成年黄网站色视频 | 欧美日韩中文在线观看 | a久久|