我试图从另一个表中的另一个字段的总和更新一个表中的一个字段。mysql从另一个表更新表
company_tbl(PRIMARY,companySize,公司名称) location_tbl(PRIMARY,companyID,locationSize,LOCATIONNAME)
两个表由company_tbl.PRIMARY = location_tbl.companyID
update company_tbl comp, location_tbl loc
set companySize = sum(locationSize)
where comp.PRIMARY = loc.companyID
我越来越链接“无效使用群组功能”的错误
公司可以有多个地点
是我想做的事情吗?我想获取属于特定公司的地点总数,并用总和更新companySize。
谢谢!
对您的查询进行一些更新。 WHERE lt.companyid = comp.primary 否则每companySize将是相同的:-) 所以我把它这是不可能做到的更新与此语法? 更新company_tbl补偿,location_tbl禄 集companySize = SUM(locationSize) 其中comp.PRIMARY = loc.companyID 只是出于好奇,我喜欢学习新的东西:-) – Kukoy 2010-06-18 18:15:27
@Idealflip:如果没有表的别名(一般在UPDATE语句中不被接受),那么没有表别名的列引用适用于没有定义任何别名的表。 – 2010-06-18 18:17:31
您应该使用该视图。除非您绝对需要针对公司规模的读取进行优化,否则最好每次计算一次。如果您可以计算另一列中的某一列的值,则可以设置自己的状态,以使两个值不同步。 – Kendrick 2010-06-18 18:23:27