0

これは、Oracleでのクエリに関するものです。

プロジェクトのID、名前、説明をコードとともに格納するマスターテーブルが1つあります。私が使用したテーブルには、ヘルスやステータスなどを説明するための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 に答える