通过计算另一个表中的结果来更新表

时间:2017-02-01 12:23:42

标签: mysql sql

我试图通过计算来自其他表T2和T3的SQL查询的结果来更新表T1。

这是我提出的查询,但它似乎不起作用:

UPDATE T1
set Stock =
(SELECT count(ID_Item)
                 FROM T2,T3
                 WHERE T2.ID_Product = T1.ParentSKU AND
            T3.ID = T2.ID_Product AND
            Stock_Items.Name = '' AND
            Stock_Items.Returned = ''

        GROUP BY(T3.Size)
                )

我要做的是通过计算T2的结果并从T3分组不同的大小来更新T1。

1 个答案:

答案 0 :(得分:0)

您需要删除GROUP BY,如果您的项目有多个大小,则子查询将返回多个结果,并且更新将失败。

UPDATE T1
set Stock =
(SELECT count(ID_Item)
                 FROM T2 INNER JOIN T3
                 WHERE T2.ID_Product = T1.ParentSKU AND
            T3.ID = T2.ID_Product AND
            Stock_Items.Name = '' AND
            Stock_Items.Returned = '' AND
            T3.Size = T1.Size
                )

如果Size不是一个因子,则将其从子查询中完全删除