0

这是关于 Oracle 中的查询。

我有一个主表,其中存储项目的 ID、名称和描述以及代码。我使用的表有超过 4 个代码来描述健康、状态等。代码及其描述在同一个表中,比如通用表。

当我在主表上选择查询时,我必须使用子查询从通用表中获取代码的描述。查询变得更大,因为我必须对每个代码进行子查询。

有没有其他方法可以得到输出?

Master Table:
-------
Id: 100

Name:

Desc:
Health: H1

Status: S1

code3: c1

.........

........
........


Generic Table:
--------------
Code Description

H1   red

H2   green

..   ......

S1  Critical

..  ........

..  ........

c1  ........
............
............

对于 id 100,我使用了查询,

    SELECT  ID,
    PROJ_NAME,
    PROJ_DESC,
         (SELECT Description FROM generic WHERE id = P.Health) Health,
         (SELECT Description FROM generic WHERE id = P.status) Code2,
         (SELECT Description FROM generic WHERE id = P.Code3) Code3,
    FROM master P
    WHERE ID in (100);
4

1 回答 1

2

你可以使用JOIN而不是SUBQUERY

SELECT  ID,
        PROJ_NAME,
        PROJ_DESC,
        a.Description AS Health,
        b.Description AS Code2,
        c.Description AS Code3
FROM    master P
        INNER JOIN generic a
            ON a.id = P.Health
        LEFT JOIN generic b
            ON b.id = P.status
        LEFT JOIN generic c
            ON c.id = P.HCode3
WHERE p.id = 100
于 2012-11-20T13:53:59.800 回答