首页 > 解决方案 > SQL JOIN 'USING()' 子句能否与一个或多个 'AND ON()' 子句一起用于单个连接..?

问题描述

在 DB2-400 SQL 连接中,该USING()子句能否与一个或多个 AND ON 子句一起用于单个连接......?这是针对某些字段名称相同但不是 all的情况,因此 USING() 仅适用于部分连接。

我本可以发誓我以前做过这个并且它有效,但现在它躲避了我。

我尝试了如下所示的各种组合,但它们都不起作用。也许我只是弄错了,这是不可能的:

SELECT * FROM T1 INNER JOIN T2 USING (COL1,COL2) AND ON (T1.COL3=T2.COL4)

SELECT * FROM T1 INNER JOIN T2 ON (T1.COL3=T2.COL4) AND USING (COL1,COL2)

SELECT * FROM T1 INNER JOIN T2 ON (T1.COL3=T2.COL4), USING (COL1,COL2)

SELECT * FROM T1 INNER JOIN T2 USING (COL1,COL2,(1.COL3=T2.COL4))

标签: sqldb2db2-400

解决方案


在此处检查语法图https://www.ibm.com/support/knowledgecenter/en/ssw_ibm_i_72/db2/rbafzjoinedt.htm

我建议唯一的选项JOIN USING是逗号分隔的列列表

JOIN table-reference USING ( column-name [, column-name] ... )

你不能USINGON


推荐阅读