Выдает ошибку синтаксиса, когда я пытаюсь установить приоритет применения операций UNION
SELECT
id
FROM
sellers
WHERE
city = 'San Jose'
UNION
(SELECT
id
FROM
customers
WHERE
city = 'San Jose'
UNION ALL
SELECT
id
FROM
deals
WHERE
dealDate LIKE '____-03-10');
Выдает ошибку:
Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(SELECT id FROM customers WHERE city = 'San Jose' UNION ALL SELECT id ' at line 10
Дело в том, что по отдельности SELECT'ы все отлично возвращают. Даже при такой записи все работает:
SELECT
id
FROM
sellers
WHERE
city = 'San Jose'
UNION
SELECT
id
FROM
customers
WHERE
city = 'San Jose'
UNION ALL
SELECT
id
FROM
deals
WHERE
dealDate LIKE '____-03-10';
Но, к сожалению, уже без приоритета объединения, который я хочу установить(q1 UNION(q2 UNION ALL q3)).
Как правильно установить приоритет применения операций UNION?
Ответы (1 шт):
Автор решения: Slava Rozhnev
→ Ссылка
Вы можете использовать следующую хитрость:
SELECT id
FROM sellers
WHERE city = 'San Jose'
UNION
SELECT * FROM (
SELECT id
FROM customers
WHERE city = 'San Jose'
UNION ALL
SELECT id
FROM deals
WHERE dealDate LIKE '____-03-10'
) t;