Удалить строки из двух таблиц различий с MySQL

0

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

В этом случае я хочу удалить всех пользователей, где 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';

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

  • 0
    a.UHL_HotelId : a.UHL_HotelId должен быть b.UHL_HotelId
  • 0
    Ваш запрос работает нормально с исправленной опечаткой. Смотрите rextester.com/ZZIR99492
Показать ещё 1 комментарий
Теги:
pdo

1 ответ

0

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

ON DELETE CASCADE

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

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

  • 0
    Можете ли вы дать решение с примером из вопроса?
  • 0
    Я ожидаю, что отношения с внешними ключами пойдут другим путем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню