使用mysql从两个差异表中删除行

7y4bm7vi  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(299)

正如标题所解释的,我想从两个不同的表中删除行。
如果是这种情况,我想删除所有的用户 UHL_HotelId 等于 cus_DVndBgfwSVaZhe .
___用户表

|--------|
| USR_Id |
|--------|
|    100 |
|    102 |
|    103 |
|    104 |
|    105 |
|    106 |
|    107 |
|--------|

___用户快照链接

|--------|------------|--------------------|
| UHL_Id | UHL_UserId | UHL_HotelId        |
|--------|------------|--------------------|
|      1 |        100 | cus_DVndBgfwSVaZhe |
|      2 |        101 | cus_DVndBgfwSVaZhe |
|      3 |        102 | cus_DVndBgfwSVaZhe |
|      4 |        103 | cus_DVndBgfwSVaZhe |
|      5 |        104 | cus_DVndBgfwSVaZhe |
|      5 |        105 | cus_DVndBgfwSVaZhe |
|      6 |        106 | cus_GHbnGhGgu3lbnw |
|      7 |        107 | cus_GHbnGhGgu3lbnw |
|--------|------------|--------------------|

我的尝试如下:

DELETE a.*, b.* 
FROM ___Users a 
JOIN ___UsersHotelsLink b 
    ON b.UHL_UserId = a.USR_Id 
WHERE a.UHL_HotelId = 'cus_DVndBgfwSVaZhe';

为什么我的查询不起作用?

7fhtutme

7fhtutme1#

假设可以使用的两个表之间有外键关系

ON DELETE CASCADE

它“允许您在从父表中删除数据时自动从子表中删除数据”
http://www.mysqltutorial.org/mysql-on-delete-cascade/

相关问题