Я пытаюсь сделать запрос, используя условие NOT IN
. Если я использую подзапрос, у меня нет проблем, но когда я пытаюсь использовать UNION
для объединения результатов из двух таблиц, у меня есть ошибка.Использование UNION внутри NOT IN
Это то, что я делаю:
SELECT *
FROM users
WHERE id NOT IN(
(
SELECT DISTINCT(user_id) AS id
FROM users_table_1
)
UNION
(
SELECT DISTINCT(user_id) AS id
FROM users_table_2
)
)
Есть ли способ, чтобы получить то, что я хочу с помощью подзапросов?
Да, это было так. Я думал, что могу использовать круглые скобки, чтобы связать свои запросы. Новая вещь научилась :). – kunde
@ Yasir, какая версия делает эту ошибку (от второго появления «AS id»)? Я не могу воспроизвести его в SQLFiddle. Кроме того, два 'DISTINCT' являются избыточными, поскольку' UNION' имеет по умолчанию 'UNION DISTINCT' и в любом случае удалит все дубликаты. –
@ypercube Я думаю, что я смутил имя псевдонима столбца, появляющееся более одного раза с предложением 'ORDER BY', указанным в любом запросе, отличном от последнего в операторе set, i. е. этот запрос дает ошибку 'select 'foo' от двойного порядка на 1 union select 'bar' от double', в то время как это не' select 'foo' из двойного объединения select bar для двойного порядка на 1'. Обновлен ответ. –