У меня есть этот запрос.
SELECT distinct c.reportingDate, c.clientId
FROM clients AS c
WHERE NOT EXISTS
( SELECT 1
FROM accounts_europe AS e
WHERE e.reportingDate = c.reportingDate
AND e.clientId = c.clientId
union
SELECT 1 -- line A. unexpected select error
FROM accounts_usa AS u
WHERE u.reportingDate = c.reportingDate
AND u.clientId = c.clientId
) ;
, когда он выполняется в MySQL, он отображает синтаксическую ошибку, которая говорит "неожиданный выбор" в строке A.
Однако, поскольку запросверно, когда я выполняю его, он действительно выполняется и возвращает правильные результаты.
Когда я пытаюсь создать процедуру, которая содержит точно такую же вещь, она не может быть скомпилирована.Исходный код:
CREATE PROCEDURE `proc_sample`()
BEGIN
SELECT distinct c.reportingDate, c.clientId
FROM clients AS c
WHERE NOT EXISTS
( SELECT 1
FROM accounts_europe AS e
WHERE e.reportingDate = c.reportingDate
AND e.clientId = c.clientId
union
SELECT 1 -- line A. unexpected select error
FROM accounts_usa AS u
WHERE u.reportingDate = c.reportingDate
AND u.clientId = c.clientId
) ;
END
Отображаемое сообщение: «Оператор DDL объекта содержит синтаксические ошибки».Я что-то не так делаю или это ошибка в MySQL верстак?