2014-03-27 78 views
0

^h安永人,SQL - 如何用不同的值選擇同一列兩次?

我有以下數據庫表:

enter image description here

我想要得到的產品名稱PROD_VERS_ALLOC_ID列後面。如果只有一列,而不是兩個(_A和_B),但這很容易,但我不確定如何從兩個PROD_VERS_ALLOC_ID列中引用產品名稱。

這裏是我的SQL查詢看起來像現在:

SELECT p.PROD_NAME, pv.PROD_VERS_NAME, cl.COMPA_LVL_NAME 
FROM TBL_PROD AS p, TBL_PROD_VERS AS pv, TBL_PROD_VERS_ALLOC AS pva, TBL_COMPA_LVL AS cl, TBL_COMPA AS c 
WHERE p.PROD_ID=pva.PROD_ID And pv.PROD_VERS_ID=pva.PROD_VERS_ID And cl.COMPA_LVL_ID=c.COMPA_LVL_ID And pva.PROD_VERS_ALLOC_ID=c.PROD_VERS_ALLOC_ID_B 
And p.PROD_ID=66; 

基本上就是我需要的是

SELECT p.PROD_NAME_A, p.PROD_NAME_B, [....] 

PROD_NAME_A的線路中的東西將需要的ID名稱在PROD_VERS_ALLOC_ID_A和PROD_NAME_B中是PROD_VERS_ALLOC_ID_B的產品名稱。

有沒有人有關於如何做到這一點的想法?我需要做子查詢還是什麼?

最好的問候, daZza

+0

這是SQL Server或MS訪問? –

+0

訪問.................. – daZza

+0

你有SQL服務器的標籤,這就是爲什麼我問。 –

回答

0

我認爲這是確定:

SELECT pa.PROD_NAME, pb.PROD_NAME, pv1.PROD_VERS_NAME, pv2.PROD_VERS_NAME,cl.COMPA_LVL_NAME 

    FROM TBL_PROD AS pa, TBL_PROD AS pb,TBL_PROD_VERS AS pv1, TBL_PROD_VERS AS pv2, 
TBL_PROD_VERS_ALLOC AS pva, TBL_PROD_VERS_ALLOC AS pvb, 
TBL_COMPA_LVL AS cl, TBL_COMPA AS c 

    WHERE 
    pa.PROD_ID=pva.PROD_ID And 
    pv1.PROD_VERS_ID=pva.PROD_VERS_ID And 
    pva.PROD_VERS_ALLOC_ID=c.PROD_VERS_ALLOC_ID_A And 

    pb.PROD_ID=pvb.PROD_ID And 
    pv2.PROD_VERS_ID=pvb.PROD_VERS_ID And 
    pvb.PROD_VERS_ALLOC_ID=c.PROD_VERS_ALLOC_ID_B And 

    cl.COMPA_LVL_ID=c.COMPA_LVL_ID And  
    p.PROD_ID=66;