2017-08-25 18 views
0

私はアクティブフィールドを更新し、顧客に出荷された商品の数に基づいて設定しようとしています。しかし、それは意図したとおりに動作していません。 issueShippedが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; 
関連する問題