我有一个表更新的问题。遵循表结构:
Table1 tableid ... ... productID_1 productID_2 productID_3 Table2 productID Total
I've to totalize each product in table2.
For example:
SELECT COUNT(*) as tot, ProductID_1 FROM Table1 GROUP Table1
然后 UPDATE table2 SET total =
..??? (我该怎么做)WHERE productID_1 =
....
希望你能帮助我。
谢谢
最佳答案
您在简化查询方面的选择在很大程度上取决于您使用的产品和版本。但是,应该适用于大多数数据库的解决方案是:
Update Table2
Set Total = (
Select Count(*)
From (
Select productId_1 As ProductId From Table1
Union All Select productId_2 From Table1
Union All Select productId_3 From Table1
) As Z
Where Table2.ProductId = Z.ProductId
Group By ProductId
)
这个查询很麻烦的一个很大原因是Table1中的数据没有规范化。相反,您应该考虑 Table1 的结构,例如:
Create Table Table1 (
TableId <datatype> not null
, ProductId <datatype> not null
, Constraint PK_Table1 Primary Key ( TableId, ProductId )
)
关于mysql - 总计更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2930114/