Почему я не могу выбрать из своего запроса? - PullRequest
1 голос
/ 18 ноября 2010

У меня есть запрос примерно такой (нет, мои таблицы и поля не называются этими именами, но структура та же) -

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

Что я делаю не так?

1 Ответ

8 голосов
/ 18 ноября 2010

Вы пропустили наименование подвыбора. Закрыть с чем-то вроде ...) sub_query_name.

...