SQL能否加入';使用();子句与一个或多个'一起使用;在()和#x27;单个联接的子句。。?
在DB2-400 SQL联接中,SQL能否加入';使用();子句与一个或多个'一起使用;在()和#x27;单个联接的子句。。?,sql,db2,db2-400,Sql,Db2,Db2 400,在DB2-400 SQL联接中,USING()子句能否与单个联接的一个或多个AND ON子句一起使用。。?这适用于某些字段名相同但并非全部的情况,因此使用()只能应用于连接的一部分 我本可以发誓我以前做过这件事,但现在我逃避了 我尝试了如下所示的各种组合,但都不起作用。也许我只是弄错了,这是不可能的: SELECT * FROM T1 INNER JOIN T2 USING (COL1,COL2) AND ON (T1.COL3=T2.COL4) SELECT * FROM T1 INNER
USING()
子句能否与单个联接的一个或多个AND ON子句一起使用。。?这适用于某些字段名相同但并非全部的情况,因此使用()只能应用于连接的一部分
我本可以发誓我以前做过这件事,但现在我逃避了
我尝试了如下所示的各种组合,但都不起作用。也许我只是弄错了,这是不可能的:
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))
在这里检查语法图 我建议使用
连接的唯一选项是列的逗号分隔列表
JOIN table-reference USING ( column-name [, column-name] ... )
您不能将与混合使用和打开检查此处的语法图
我建议使用连接的唯一选项是列的逗号分隔列表
JOIN table-reference USING ( column-name [, column-name] ... )
您不能将使用
与
上的混合使用,您可以在以下位置使用:
SELECT *
FROM T1 INNER JOIN
T2 USING (COL1, COL2)
WHERE T1.COL3 = T2.COL4;
另一种选择是使用子查询重命名其中一个表中的列。您可以使用where
:
SELECT *
FROM T1 INNER JOIN
T2 USING (COL1, COL2)
WHERE T1.COL3 = T2.COL4;
另一种选择是使用子查询重命名其中一个表中的列。我认为(t1.col1,t1.col2)=(t2.col1,t2.col2)和t1.col3=t2.col4
上的可能是编写它的最短方法,但我不知道DB2是否支持这种方法。奇怪的语法。。。为了继续使用(),我将其他内部连接条件放在WHERE子句中。(但我宁愿切换到常规语法。)是的,我在连接到DB2的DBeaver(一个类似DBSquirrel的客户机)中工作,但我一直无法让它工作,继续使用SQL0199
。这是一个复杂的查询,有三个物理表,两个“unpivot”作为连接的UNION
子查询,每个子查询有六个子选择。而
上的一个子句是介于
之间的一个,因此连接会拉入一系列记录,而不是一个完美的a=B,lol。如果可能的话,只是尝试让这个混乱更具可读性。我已经清理了很多,但它仍然需要工作。我认为(t1.col1,t1.col2)=(t2.col1,t2.col2)和t1.col3=t2.col4
可能是编写它的最短方法,但我不知道DB2是否支持这一点。奇怪的语法。。。为了继续使用(),我将其他内部连接条件放在WHERE子句中。(但我宁愿切换到常规语法。)是的,我在连接到DB2的DBeaver(一个类似DBSquirrel的客户机)中工作,但我一直无法让它工作,继续使用SQL0199
。这是一个复杂的查询,有三个物理表,两个“unpivot”作为连接的UNION
子查询,每个子查询有六个子选择。而
上的一个子句是介于
之间的一个,因此连接会拉入一系列记录,而不是一个完美的a=B,lol。如果可能的话,只是尝试让这个混乱更具可读性。我已经把它清理了很多,但它仍然需要工作。是的,看起来这就是答案。正如我在我的专栏文章中提到的,我认为我以前做过这件事,它成功了,但似乎我错了,它不起作用。@spinjector供您参考,在IBM的Db2中,您也不能从tbl1使用(colA)连接tbl2使用(colA)连接tbl3使用(colA)
,我不确定我是否理解这一点。你的意思是,在from
的之后不能有多个内部联接
子句,或者不能有两个子句使用不同联接的相同列名..?是的,看起来这就是答案。正如我在我的专栏文章中提到的,我认为我以前做过这件事,它成功了,但似乎我错了,它不起作用。@spinjector供您参考,在IBM的Db2中,您也不能从tbl1使用(colA)连接tbl2使用(colA)连接tbl3使用(colA)
,我不确定我是否理解这一点。您的意思是,在from
的之后不能有多个内部联接
子句,或者不能有两个子句使用不同联接的相同列名。。?