2010-11-18 14 views
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)) <> '' 

。しかし、そのように私は、(私は最終的になど、グループBYS、と操作しようとしているが、今のためだけの簡単な選択をしようとした)、それを選択しようとすると:

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 ')'. 

私は間違っていますか?

答えて

8

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

+0

+1:私はそれが朝だと言うことができます、私はそれを見て、私はそれを考えなかった。 – Powerlord

+0

ありがとう!私はそれが私が忘れていたもののようなものであることを知っていた...それは今働いています:) – froadie

+0

+1は簡単ですが速く見つける! – Konerak

関連する問題