2017-08-25 81 views
0

我正在尝试更新活动字段并根据有多少产品已发送给客户进行设置。但它没有按预期工作。我有一些recordShipped比totalIssues大但isActive没有被设置为false。MySQL与计数的比较

UPDATE xatm.subscriptions a, 
     (SELECT idSubscription, COUNT(idProduct) issueShipped 
     FROM xatm.subscriptionshipments 
     group by idSubscription) b 
SET a.isActive = (a.totalIssues > b.issueShipped) 
WHERE a.idsubscriptions = b.idSubscription 
AND a.isComp = 0 AND a.isReoccurring = 0; 
+0

我的感觉是,你的查询是否正确。你能否包含一些数据来说明你遇到的问题? –

回答

1

其实,我觉得你当前的查询应该工作,但在任何情况下,你可以尝试将是一个更新的替代联接:

UPDATE xatm.subscriptions a 
INNER JOIN 
(
    SELECT idSubscription, COUNT(idProduct) issueShipped 
    FROM xatm.subscriptionshipments 
    GROUP BY idSubscription 
) b 
    ON a.idsubscriptions = b.idSubscription 
SET a.isActive = (a.totalIssues > b.issueShipped) 
WHERE 
    a.isComp = 0 AND 
    a.isReoccurring = 0;