Удалить строки из двух таблиц различий с MySQL - PullRequest
0 голосов
/ 17 сентября 2018

Как объясняет заголовок, я хочу удалить строки из двух разных таблиц.

В этом случае я хочу удалить всех пользователей, где UHL_HotelId равно cus_DVndBgfwSVaZhe.

___ Таблица пользователей

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

___ UsersHotelsLink

|--------|------------|--------------------|
| 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';

Почему мой запрос не работает, пожалуйста?

1 Ответ

0 голосов
/ 17 сентября 2018

Предполагая, что между двумя таблицами есть отношение внешнего ключа, вы можете использовать

ON DELETE CASCADE

, который "позволяет автоматически удалять данные из дочерних таблиц при удалении данных из родительской таблицы"

http://www.mysqltutorial.org/mysql-on-delete-cascade/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...