如何使用select更新查询? MySQL的

我要计数每个业务点有交易或画廊:如何使用select更新查询? MySQL的

因此,如果企业有未空交易,或者至少有一个画廊,business_data_count应该为2

这是我”已经试过:

UPDATE `business` businessTable SET 

business_data_count

=

sum(

(

SELECT

CASE

WHEN count(*)>= 1 then count(*)

ELSE 0

END as points

FROM gallery WHERE bussId=businessTable.bussId

)

+

(

SELECT

case

WHEN deal!='' then 1

ELSE 0

end

FROM business WHERE bussId=businessTable.bussId

)

where 1

,但我得到这个错误: 你不能指定表业务更新

如何解决这一问题?

回答:

没有必要从更新表中单独选择。试试这个(未经测试):

UPDATE business 

SET business_data_count = (deal != '')

+ (SELECT COUNT(*)

FROM gallery

WHERE bussId = business.bussId);

在一个单独的说明,这是一般不好的做法来存储可以用查询中轻松地提取数据,如上述。

回答:

我认为你有一个错字。 我想你应该有:

UPDATE `business`.businessTable SET 

,而不是

UPDATE `business` businessTable SET 

如果您在查询中定义的表时使用的模式,你需要将它们用点分隔()。

也许这不是唯一的问题,但这是第一个想到的。

以上是 如何使用select更新查询? MySQL的 的全部内容, 来源链接: utcz.com/qa/264209.html

回到顶部