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

Hello! 歡迎來到小浪云!


如何通過單一語句刪除多張表中符合特定條件的記錄?


avatar
小浪云 2024-11-11 203

如何通過單一語句刪除多張表中符合特定條件的記錄?

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

本文將解決如何在sql語句中通過單一語句實現多表刪除。

問題

有一張dish表,一個dish_flavor表和一個setmeal_dish表。需要刪除dishid為51和52的所有記錄。但是,使用以下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);
登錄后復制

原因

此語句本質上等價于:

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

由于第三張表中沒有符合條件的數據,因此不會刪除任何記錄。內連接要求三張表中都必須存在該id的記錄,才會刪除該記錄。

解決方案

如果希望當有任何一張表中存在要刪除的id時就進行刪除,可以使用左連接:

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

這樣,即使第三張表中沒有數據,前兩張表中的數據仍然會被刪除。

相關閱讀

主站蜘蛛池模板: 天天躁人人躁人人躁狂躁 | 亚洲免费精品一区 | 精品熟人一区二区三区四区 | 久久亚洲国产精品 | 不卡一二三区 | 欧美日韩高清 | 99热国产在线播放 | 俺去俺来也www色官网cms | 国产精品一卡 | 欧美精品1区2区3区 免费黄篇 | 在线āv视频 | 国产精品欧美一区二区三区 | 中文字幕91 | 久久免费观看视频 | 国产精品无码久久久久 | 久久久国产一区二区三区 | 久久免费视频2 | 在线观看中文字幕一区二区 | 在线日韩不卡 | 成人在线电影在线观看 | 日韩欧美在线一区二区 | 亚洲国产欧美在线 | 91久久精品国产 | 免费a在线 | 国产黄色在线 | 国产精品久久久久久久久久久久午夜片 | 国产精品成人在线观看 | 亚洲精品久久久一区二区三区 | 福利色导航| 天天亚洲| 天天射天天干 | 欧一区| 国产精品国产三级国产aⅴ无密码 | 午夜爽爽男女免费观看hd | 亚洲午夜精品视频 | 国产成人精品亚洲日本在线观看 | 国产电影一区二区三区爱妃记 | 国产一区二区三区高清 | 国产又色又爽又黄又免费 | 激情综合五月 | 成人国产在线观看 |