UPDATE
(
SELECT
a.COL1
FROM
TABLE1 a,
TABLE2 b,
TABLE3 c
WHERE
a.name = b.name
c.ccol = b.ccol AND
AND b.col1 = 'anyvalue'
AND a.col2 = 'anothervalue'
) u
SET
u.COL1 = 'VALUE'
此查询不起作用,因为 TABLE1 不包含 PK。如何编写这样的查询?
最佳答案
以下内容应该可以实现您在上面想要实现的目标:
UPDATE TABLE1
SET COL1 = 'VALUE'
WHERE EXISTS
( SELECT 1
FROM TABLE2 B
INNER JOIN TABLE3 C
ON B.Ccol = C.Ccol
WHERE b.Name = Table1.Name
AND b.Col1 = 'AnyValue'
AND c.Col1 = 'AnotherValue'
)
关于sql - 在oracle中使用join更新表而不使用PK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11848171/