在 Oracle SQL 中使用合并

Using Merge in Oracle SQL

我们可以在 merge 语句中使用 join 吗?

MERGE INTO TABLE1 T
   USING TABLE2
   ON .....
   WHEN MATCHED THEN .....
   WHEN NOT MATCHED THEN INSERT (X,Y,Z1) VALUES (X,Y,Z1);

X 和 Y 属于 TABLE2,合并没有问题,但我还想在合并到 TABLE1 时从另一个 TABLE3 插入 Z1。

我正在尝试加入 TABLE3,但在合并语法中不允许这样做。

有什么办法吗?

USING 子句可以将子查询作为其参数。听起来你想要这样的东西:

MERGE INTO table1 t
USING (
  ... subquery joining TABLE2 and TABLE3 ...
) f
ON f.something = t.something
...