我有一张table customer_service_types
在 phpmyadmin
使用以下字段:
id (int) | customer_id (int) | service_type_int (int) | price (decimal) | created (datetime) | card (tinyint)
以下是一些条目:
当用户为具有自定义创建日期的客户添加新服务时,应用程序将创建另一个id为3(付款)且日期为今天的服务。我想用以下服务的日期更新所有付款。
所以我要做的是更新 created
付款字段 created
以下服务对特定客户的价值。例如,我需要更新 created
的 id
:168,值为 created
同样的道理 customer_id
但只有下一行的 service_type_id
!= 三。
迄今为止尝试过:
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;
但我有个错误:
不能在from子句中为update指定目标表'cst'
我不知道这个查询是否会产生期望的结果
2条答案
按热度按时间cdmah0mi1#
你可以使用
join
:92dk7w1h2#
您可以将子查询转换为派生表形式。请尝试以下操作: