Hitachi

Hitachi Advanced Data Binder SQLリファレンス


7.5.1 FROM句の指定形式および規則

FROM句には,検索対象とする表を指定します。

〈この項の構成〉

(1) 指定形式

FROM句::=FROM 表参照〔,表参照〕…

(2) 指定形式の説明

表参照

検索対象となる表を表参照の形式で指定します。表参照の詳細については,「7.11 表参照」を参照してください。

複数の表参照を指定した問合せ(FROM句に表名,問合せ名,導出表表関数導出表,および集まり導出表を複数含む問合せ)を実行する場合,これを結合といいます。

また,複数の表参照をコンマ( , )で区切って指定する結合をコンマ結合といいます。

(3) 規則

  1. FROM句に指定するすべての表参照中に指定できる表名,問合せ名,導出表表関数導出表,および集まり導出表の数は,最大64個になります。表名の指定数の算出方法を次に示します。

    • 表参照に表名を指定した場合:1

    • 表参照に導出表を指定した場合:1

    • 表参照に結合表を指定した場合:結合表に指定した表名,および導出表の合計数

    • WITH句に指定した問合せ名を指定した場合:1

    • 表参照に表関数導出表を指定した場合:1

    • 表参照に集まり導出表を指定した場合:1

    表名の指定数の算出例を次に示します。

    (例)

    WITH "Q1" AS (SELECT * FROM "T6","T7")
    SELECT * FROM "T1",                                       ...[a]
        "T2" LEFT OUTER JOIN "T3" ON "T2"."C1"="T3"."C1",     ...[b]
        (SELECT * FROM "T4","T5") "W1",                       ...[c]
        "Q1",                                                 ...[d]
        TABLE(ADB_CSVREAD(MULTISET['/dir/file.csv.gz'],
                         'COMPRESSION_FORMAT=GZIP;'))
        AS "W2" ("C1" INT),                                   ...[e]
        UNNEST("T1"."C1") AS "W3" ("C1")                      ...[f]

    [説明]

    1. 表名(T1)を指定しているため,表名の数は1つとなります。

    2. 結合表を指定しているため,表名の数は結合表に指定した表名(T2およびT3)の合計で2つとなります。

    3. 導出表(W1)を指定しているため,導出表の数は1つとなります。

    4. WITH句に指定した問合せ名(Q1)を指定しているため,問合せ名の数は1つとなります。

    5. 表関数導出表を指定しているため,1と計算します。

    6. 集まり導出表を指定しているため,1と計算します。

    したがって,上記の例の場合,すべての表参照に指定された表名の指定数は,合計7になります。

  2. FROM句の結果の列の記述子は,FROM句に指定した表の列の記述子と同じになります。また,FROM句の結果の列の順序は,FROM句に指定した表の列の順序になります。次に示すSELECT文を実行した場合を例にして具体的に説明します。

    (例)

    SELECT * FROM "T1","T2"

    T1C1列とC2列が,表T2C3列とC4列が定義されているとします。この場合,FROM句の結果の列の順序は,C1C2C3C4となります。

    メモ

    列の記述子とは,列の名称,データ型,データ長,ナル値の有無,列ID(先頭の列からの番号)から成る列の属性情報のことです。

(4) 例題

FROM句の指定例を例題を使って説明します。

例題

販売履歴表(SALESLIST)から,2011/9/6以降に商品コードP002の商品を購入した顧客の,顧客ID(USERID),商品コード(PUR-CODE),購入日(PUR-DATE)を検索します。

SELECT "USERID","PUR-CODE","PUR-DATE"
    FROM "SALESLIST"
        WHERE "PUR-DATE">=DATE'2011-09-06'
        AND "PUR-CODE"='P002'

下線部分がFROM句の指定です。

(5) 留意事項

次に示す場合は,作業表が作成されることがあります。作業表が作成される作業表用DBエリアの容量が正しく見積もられていない場合,性能低下の原因となることがあります。作業表用DBエリアの容量見積もりについては,マニュアルHADB システム構築・運用ガイドを参照してください。

作業表の詳細については,マニュアルHADB AP開発ガイド作業表が作成されるSQLを実行する際の考慮点を参照してください。