0
我想用另一个表中的匹配值更新我的结果表。在更新时,是否有可能显示尚未更新(不匹配)的记录?显示无法更新的记录mysql
BEGIN WORK
UPDATE results, testcases
SET results.testset = testcases.TestSet
WHERE results.TestCase = testcases.TestCase
我想用另一个表中的匹配值更新我的结果表。在更新时,是否有可能显示尚未更新(不匹配)的记录?显示无法更新的记录mysql
BEGIN WORK
UPDATE results, testcases
SET results.testset = testcases.TestSet
WHERE results.TestCase = testcases.TestCase
最直接的答案是选择所有那些WHERE
条款被满足,但SET
结果不是:
SELECT *
FROM results, testcases
WHERE results.TestCase = testcases.TestCase
AND resutls.testset <> testcases.TestSet
我假设你想要的原因,这同时更新是为了避免不正确的信息由于并发更新。如果情况并非如此,只需使用显示的查询。
在单个查询中没有办法。因此,您需要使用事务边界和查询提示来锁定锁以执行存在查询来查找不匹配的行。
SELECT *
FROM Results r
WHERE NOT EXISTS (
SELECT *
FROM TestCases t
WHERE r.TestCase = t.TestCase
)
您应该使用此方法的左加入 – danielrsmith 2010-01-18 18:03:57
更新? – JPro 2010-01-18 18:12:30