我想根据表格2更新table1中的一些ClaimNos
{。}}。
declarationNos
此查询不会给出任何错误,但它也不起作用。怎么了?
答案 0 :(得分:0)
首先,我认为您复制了错误的查询。您有WHERE dummy.DeclarationNo
,我怀疑您确实拥有WHERE sg_report.DeclarationNo
。
Paresh J是正确的,你的WHERE
语句应该包含IN
而不是一个相等的语句,因为它可以返回多行。
但是我怀疑你的问题的答案与数据类型有关。我创建了一个示例数据库并运行以下查询,它工作得很好。我实际上花了一段时间试图调试它,因为它没有更新任何东西,直到我意识到没有更新!
UPDATE sg_report
SET ClaimNo = (
SELECT MAX( dummy.ClaimNo ) as ClaimNo
FROM dummy
WHERE ClaimNo REGEXP '^[0-9]+$' AND sg_report.DeclarationNo = dummy.DeclarationNo
)
WHERE sg_report.DeclarationNo IN (
SELECT DISTINCT dummy.DeclarationNo
FROM dummy
WHERE dummy.DeclarationNo LIKE '2%'
)