JOIN запрос и UPDATE - MySQL
Формулировка задачи:
Здравствуйте, есть запрос на выборку з бд айдишиников опеределенных отелей
Запрос робочий, но тепеть мне нужно обновить данные в еще одной таблице изпользовав эти айдишгики
то есть запрос типо такой
В запросе ошибка, знаю что если запрос с Join то так SELECT в UPDATE писать нельзя..но незнаю как это исправить, помогите пожалуйста...!!
SELECT DISTINCT `ho`.`hotel_id` FROM `hotel` AS `ho` INNER JOIN `city_regions` AS `ci` ON ho.city_id = ci.city_id INNER JOIN `region_lang` AS `rl` ON rl.region_id=ci.region_id LEFT JOIN `hotel_description_translations` AS `hd` ON hd.hotel_id=ho.hotel_id WHERE rl.name='Карпаты';
UPDATE hotel_description_translations SET lang_id ='-2' WHERE lang_id='2' AND hotel_id IN (SELECT DISTINCT `ho`.`hotel_id` FROM `hotel` AS `ho` INNER JOIN `city_regions` AS `ci` ON ho.city_id = ci.city_id INNER JOIN `region_lang` AS `rl` ON rl.region_id=ci.region_id LEFT JOIN `hotel_description_translations` AS `hd` ON hd.hotel_id=ho.hotel_id WHERE rl.name='Карпаты');
Решение задачи: «JOIN запрос и UPDATE»
textual
Листинг программы
update a set a.CNT = (select COUNT(distinct b.UID ) from b where a.key = b.key);
Объяснение кода листинга программы
В представленном коде выполняется операция UPDATE, которая обновляет значение поля CNT
в таблице a
. Значение этого поля устанавливается равным количеству уникальных значений UID в таблице b
, которые соответствуют определенному ключу. При этом выполняется операция JOIN между таблицами a
и b
по полю key
.
Вот список действий, которые выполняются в данном коде:
- Выполняется операция UPDATE для таблицы
a
. - В поле
CNT
устанавливается значение, равное количеству уникальных значений UID в таблицеb
. - Для выполнения операции JOIN используется условие, что значение поля
key
в таблицеa
равно значению поляkey
в таблицеb
. - В подзапросе используется функция COUNT(DISTINCT b.UID), которая подсчитывает количество уникальных значений UID в таблице
b
. - Значение поля
CNT
в таблицеa
обновляется с использованием полученного результата из подзапроса.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д