проблема с использованием ORDER BY в postgres с предложением UNION - PullRequest
1 голос
/ 26 апреля 2019

Я пытаюсь выполнить этот запрос в postgresql

SELECT DISTINCT users."uid", tax."tid"
FROM tax
LEFT JOIN users ON tax."uid" = users."uid"

UNION 

SELECT DISTINCT users."uid", tax."tid"
FROM tax 
LEFT JOIN users ON tax."uid" = users."uid"
ORDER BY users."uid", tax."tid"

, но я сталкиваюсь с этой ошибкой

missing FROM-clause entry for table "users"
LINE 10: ORDER BY users."uid", tax."tid"

, однако, когда я запускаю эти запросы, я не вижу проблем, ирезультаты ожидаемые: -

SELECT DISTINCT users."uid", tax."tid"
FROM tax 
LEFT JOIN users ON tax."uid" = users."uid"
ORDER BY users."uid", tax."tid"
SELECT DISTINCT users."uid", tax."tid"
FROM tax
LEFT JOIN users ON tax."uid" = users."uid"
ORDER BY users."uid", tax."tid"
SELECT DISTINCT users."uid", tax."tid"
FROM tax
LEFT JOIN users ON tax."uid" = users."uid"

UNION 

SELECT DISTINCT users."uid", tax."tid"
FROM tax 
LEFT JOIN users ON tax."uid" = users."uid"

что я тут не так делаю?

1 Ответ

1 голос
/ 26 апреля 2019

Оставьте псевдонимы таблиц и обращайтесь к столбцам только по псевдонимам таблиц:

SELECT users."uid", tax."tid"
FROM tax LEFT JOIN
     users
     ON tax."uid" = users."uid"
UNION 
SELECT users."uid", tax."tid"
FROM tax LEFT JOIN
     users
     ON tax."uid" = users."uid"
ORDER BY "uid", "tid";

SELECT DISTINCT является избыточным, потому что UNION удаляет дубликаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...