首页 > 解决方案 > 在 SQL 查询中比较了哪两个表

问题描述

private static final String UPDATE_QUERY =
            "MERGE INTO EXAMPLE_TABLE AS table1 USING (" +
                    "VALUES(:value1, :value2, :value3) " +
                    "AS table2 (val1, val2, val3) " +
                    "ON table1.val1 = table2.val1 " +
                    "AND table1.val2 = table2.val2 " +
                    "AND table1.val3 = table2.val3 " +
                    "WHEN NOT MATCHED THEN " +
                    "INSERT (value1, value2, value3, " +
                    ") " +
                    "VALUES (table2.val1, table2.val2, table2.val3)";

我不明白的是,因为只指定了一个表,在这种情况下,“EXAMPLE_TABLE”被称为table1,这个查询如何知道哪个表被称为table2,因为没有实际表名的声明?

标签: sqldb2

解决方案


我不明白的是,因为只指定了一张表,. . .

不,有两个。第二个在这里。

"VALUES(:value1, :value2, :value3) " +
"AS table2 

这是一个表构造函数,您可以在其中查找您正在使用的任何 DBMS。这是SQL Server (T-SQL) 的文档


推荐阅读