Синтаксическая ошибка SQL в или рядом с "union"

у меня есть небольшой запрос и объединение, чтобы поместить рядом с ним другой небольшой запрос. Однако в union есть синтаксическая ошибка.

Select <column1>
      ,<column2>
From <Table1> 
<Some joins in there>
Where <conditions>
group by <column2>
order by <column2>

union

select <column2>
      ,<column3>
      ,<column4>
From <Table2>
<Some more joins here>
Where <conditions>
group by <column2>
order by <column2>

Это ошибка, которую я получаю

ERROR: Syntax error at or near 'union'

2 ответов


Я вижу, что был неправ. Вы должны разместить заказ в конце запроса, и только в самом конце. Это дало мне ошибку, потому что он думал, что запрос уступил.

Select <column1>
      ,<column2>
      ,<aggregate column3>
From <Table1> 
<Some joins in there>
Where <conditions>
group by <column2>, <column1>

union

select <column2>
      ,<column3>
      ,<aggregate column4>
From <Table2>
<Some more joins here>
Where <conditions>
group by <column2>, <column3>
order by <column2>

это сделало трюк.


короткий ответ: (SELECT... ORDER BY..) UNION (SELECT .. ORDER BY...) работает.

посмотреть документация о UNION:

пункт Союза

предложение UNION имеет следующую общую форму:

Союз аргумент select_statement [ все | отличных ] аргумент select_statement

select_statement - любой оператор SELECT без ордера BY, LIMIT, Для не ключ обновления для обновления, для обмена, или для ключевых пункта поделиться. (заказ и предел могут быть прикреплено к подвыражению, если оно заключено в скобки. Без скобок, эти положения будут принято применять к результату объединения, а не к его правому входу выражение.)