如果我自欺欺人,但对“基本”类型之外的 mysql 查询仍然相当陌生,请原谅我。目前我有两个数据表。
表 1 使用 LOAD INTO 将数据解析到其中,表 2 具有手动输入的用户信息数据。这是自动从 | 中提取的。每天两次分隔文件。
以下是表 1 中包含我需要验证的数据的列(除了这些列之外,还有更多列):
sendID | recID | transAmt | transDate | transStatus
以下列来自表 2:
userID | userName | currentCapacity | maxCapacity
我正在尝试做的是运行更新,其中userID
curentCapacity
增加一,当userID
找到sendID
或recID
但仅当transStatus = Active
. 我尝试了以下方法:
UPDATE table1,table2
SET table2.currentCapacity=table2.currentCapacity+1
WHERE ( table2.transStatus="Active" AND (table2.userID = table1.sendID OR table1.recID))
这有效,并且currentCapacity
增加了 1,但它只增加了 1。我想要的效果是将 设置currentCapacity
为等于所有transStatus
=“Active”的总和。
我尝试了以下操作,它返回“#1111 - 组函数的无效使用”错误:
UPDATE table1,table2
SET table2.currentCapacity=SUM(table1.transStatus)
WHERE ( table2.transStatus="Active" AND (table2.userID = table1.sendID OR table1.recID))
有什么建议或指导吗?