1

私はこのようなクエリを持っています(いいえ、私のテーブルとフィールドはこれらの名前で呼び出されていませんが、構造は同じです)-

SELECT table1.id, table2.id, table1.phone1
FROM table1 LEFT OUTER JOIN
    table3 ON table3.id = table1.id LEFT OUTER JOIN
    table2 ON table3.id2 = table2.id    
    WHERE table1.phone1 IS NOT NULL AND LTRIM(RTRIM(table1.phone1)) <> ''

UNION

SELECT table1.id, table2.id, table1.phone2
FROM table1  LEFT OUTER JOIN
    table3 ON table3.id = table1.id LEFT OUTER JOIN
    table2 ON table3.id2 = table2.id    
WHERE table1.phone2 IS NOT NULL AND LTRIM(RTRIM(table1.phone2)) <> ''

UNION

SELECT table1.id, table2.id, table2.phone
FROM table1 LEFT OUTER JOIN
    table3 ON table3.id = table1.id LEFT OUTER JOIN
    table2 ON table3.id2 = table2.id    
WHERE table2.phone IS NOT NULL AND LTRIM(RTRIM(table2.phone)) <> ''

それはうまくいきます。しかし、そこから選択しようとすると(最終的にはグループバイなどで操作しようとしますが、今のところ単純な選択を試みました)、次のようになります。

SELECT * FROM
    ( SELECT table1.id, table2.id, table1.phone1
    FROM table1 LEFT OUTER JOIN
        table3 ON table3.id = table1.id LEFT OUTER JOIN
        table2 ON table3.id2 = table2.id    
        WHERE table1.phone1 IS NOT NULL AND LTRIM(RTRIM(table1.phone1)) <> ''

    UNION

    SELECT table1.id, table2.id, table1.phone2
    FROM table1  LEFT OUTER JOIN
        table3 ON table3.id = table1.id LEFT OUTER JOIN
        table2 ON table3.id2 = table2.id    
    WHERE table1.phone2 IS NOT NULL AND LTRIM(RTRIM(table1.phone2)) <> ''

    UNION

    SELECT table1.id, table2.id, table2.phone
    FROM table1 LEFT OUTER JOIN
        table3 ON table3.id = table1.id LEFT OUTER JOIN
        table2 ON table3.id2 = table2.id    
    WHERE table2.phone IS NOT NULL AND LTRIM(RTRIM(table2.phone)) <> '' )

エラーが発生します:

Incorrect syntax near ')'.

私は何を間違っていますか?

4

1 に答える 1

8

副選択の名前を付け忘れました。のようなもので閉じます...) sub_query_name

于 2010-11-18T14:36:42.720 に答える