У меня есть таблица customer_service_types
в phpmyadmin
с этими полями:
id (int) | customer_id (int) | service_type_int (int) | price (decimal) | created (datetime) | card (tinyint)
Вот некоторые записи:
![rows](https://i.stack.imgur.com/ch7sf.png)
Приложение, когда пользователь добавляет новую услугу для клиента с пользовательской датой создания, создает другую службу с идентификатором 3 (оплата) с сегодняшней датой.Я хочу обновить все платежи с указанием даты следующих услуг.
Итак, я хочу обновить поле платежей created
, указав created
значения , следующего за * 1018.* услуги для конкретного клиента.Так, например, мне нужно обновить created
из id
: 168 значением created
для того же customer_id
, но только для следующей строки, если оно имеет service_type_id
! = 3.
Пробовал до сих пор:
UPDATE customer_service_types cst
SET cst.created = (SELECT created
FROM customer_service_types cst2
WHERE cst.id = (cst2.id - 1) AND cst2.service_type_id <> 3
)
WHERE cst.service_type_id = 3;
Но я получаю эту ошибку:
Невозможно указать целевую таблицу 'cst' для обновления в предложении FROM
И я не знаю, даст ли этот запрос желаемый результат