大家好,
我有以下数据库表:
我想获得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需要是PROD_VERS_ALLOC_ID_A和PROD_NAME_B中ID的名称,产品名称为PROD_VERS_ALLOC_ID_B。
有没有人知道如何做到这一点?我需要做子查询吗?
最好的问候, daZza
答案 0 :(得分: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;