2016-03-04 164 views
0

我有一个交给我的大查询。在将其转换为DB2查询之后,我需要添加一个新列,它将基本上提供查询中已有的另一列的更多细节。将列添加到来自其他查询的DB2查询

例如我有查询1和查询2.我想从查询2采取F栏和附加它根据列的内容来查询1 C.

下面是查询2的一般上下文中:

SELECT TableD.ColumnD, TableE.ColumnE, TableF.ColumnF 
    FROM TableD, TableE, TableF 
    WHERE TableD.ColumnD = TableE.ColumnX 
    AND TableE.ColumnE = TableF.ColumnY 

什么是有效的方法去做这件事?

enter image description here

+0

你能提供你的第一个查询吗?只要'将它加入到'column c'和'column d'上的第二个查询并选择'f列'...同样你最好在'from'子句中使用隐式'join'与逗号。 – sgeddes

+0

@sgeddes我可以提供第一个查询。但正如我所说,这是非常大的,我不是真的在重写一个安全的格式,以便在SO上发布查询。如果真的有必要,我会编辑原文。我会告诉你的是,这是一个标准查询,其中n列从6个表格拉到9个表格,其中包含大量的where子句,并由使用UNION ALL的3个子查询组成。 –

回答

1

这个怎么样?

with q1 as (
     <first query here> 
    ), 
    q2 as (
     <second query here> 
    ) 
select q1.*, q2.f 
from q1 left join 
    q2 
    on q1.c = q2.d; 
+0

我会尝试一下并回复你。 –

+0

这是完美的。正是我需要的。无需为了处理单个相关列而乱搞大型查询。谢谢。 –