2015-11-02 59 views
0

當前,我有一個查詢,它運行在我的java代碼中,僅顯示列的簡單網格輸出以及這些特定字段的相應數據。我正在閱讀2個表格,它們都具有相同的列名稱。我需要爲該網格添加1列,但字段名稱位於不同的表格中。我如何將這添加到我現有的查詢?將另一個表中的列添加到現有的SQL /查詢語句中

這是我在Java執行我的當前查詢:

SELECT TRNSP_EQP_EIN, TRNSP_EQP_ID, PRE_EQP_ID, EQP_GRP, AAR_CT_C, 
AAR_MCHDSG_C,BLD_D, REBLD_D 
FROM EQ.TE_TRNSP_EQPACTV A 
WHERE TRNSP_EQP_ID = ‘BNSF0000000123’ 
UNION 
SELECT TRNSP_EQP_EIN, TRNSP_EQP_ID, PRE_EQP_ID, EQP_GRP, AAR_CT_C, 
AAR_MCHDSG_C,BLD_D, REBLD_D 
FROM EQ.TE_TRNSP_EQPHIST A 
WHERE A.TRNSP_EQP_ID = ‘ABC0123’ 

ORDER BY TRNSP_EQP_EFF_TS 
WITH UR 

下面是我想添加到網格中現有的SQL的信息。

表:EQ.TE_LOCO_EQP

場:DEL_RSN_CD

+1

您是否熟悉連接,主鍵和外鍵? – 2015-11-02 02:55:32

+0

不,我對數據庫的東西不是很熟悉。我的所有知識都是查找 - sel * from,等等。這個查詢已經提供給我了。 – user1676428

+0

我認爲你最好通過閱讀關於連接和鍵的方式來獲得服務。這就是將「R」放入「RDBMS」中的原因。看起來這是一個真正的網站,它可以很有效地解釋它:http://www.sql-join.com/ – 2015-11-02 03:08:25

回答

0

您需要向我們提供的EQ.TE_LOCO_EQP滿場的名單完全回答這個問題,但我想你就可以與管理我在下面提供了你。將方括號([])中的內容替換爲與加入相關的字段。

我同意@Snowman的觀點,你可以很容易地研究這個。

SELECT 
    * 
FROM 
(
    SELECT 
     TRNSP_EQP_EIN 
     ,TRNSP_EQP_ID 
     ,PRE_EQP_ID 
     ,EQP_GRP 
     ,AAR_CT_C 
     ,AAR_MCHDSG_C 
     ,BLD_D 
     ,REBLD_D 
    FROM 
     EQ.TE_TRNSP_EQPACTV A 
    WHERE 
     TRNSP_EQP_ID = ‘BNSF0000000123’ 
    UNION 
    SELECT 
     TRNSP_EQP_EIN 
     ,TRNSP_EQP_ID 
     ,PRE_EQP_ID 
     ,EQP_GRP 
     ,AAR_CT_C 
     ,AAR_MCHDSG_C 
     ,BLD_D 
     ,REBLD_D 
    FROM 
     EQ.TE_TRNSP_EQPHIST B 
    WHERE 
     A.TRNSP_EQP_ID = ‘ABC0123’ 

    ORDER BY 
     TRNSP_EQP_EFF_TS 
    WITH UR /* No idea what this is? */ 
) X 
LEFT JOIN 
    EQ.TE_LOCO_EQP Y 
ON 
    X.[PRIMARY_KEY] = Y.[EQUIVELANT_FOREIGN_KEY] 
+2

Teradata中不允許在派生表中使用ORDER BY,因此請在加入後移動它。而使用'UNION ALL'而不是'UNION'可能安全得多,優化器可能會做更好的計劃。 – dnoeth

相關問題