在oraclesql中使用Merge

在oraclesql中使用Merge,sql,oracle,merge,Sql,Oracle,Merge,在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属于表2,合并没有问题,但我还想在合并到表1时插入另一个表3中的Z1 我正在尝试加入TABLE3,但合并语法中不允许这样做 有什么办法吗?USING子句可以将子查询作为其

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属于表2,合并没有问题,但我还想在合并到表1时插入另一个表3中的Z1

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


有什么办法吗?

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

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

尝试使用子查询代替表。