Ошибка SQL (1064): проверьте, соответствует ли руководство вашей версии сервера MariaDB для правильного синтаксиса для использования рядом с '' в строке 44 - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь выполнить приведенный ниже запрос и получаю сообщение об ошибке [Заголовок окна] Ошибка SQL (1064): в синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MariaDB, чтобы найти правильный синтаксис для использования рядом с '' в строке 44

WITH Master_CTE (`id`,`range`, `review`, `validate`)
AS (SELECT 1 as `id`,
  '<1' AS `range`,
  0 AS `review`,
  0 AS `validate`
UNION
SELECT 2 as id,
  '1-4' AS `range`,
  0 AS `review`,
  0 AS `validate`
UNION
SELECT 3 as `id`,
  '4-8' AS `range`,
  0 AS `review`,
  0 AS `validate`
UNION
SELECT 4 as `id`,
  '8-24' AS `range`,
  0 AS `review`,
  0 AS `validate`
UNION
SELECT 5 as `id`,
  '>24' AS `range`,
  0 AS `review`,
  0 AS `validate`)
SELECT
  mc.id,
  IFNULL(t.time_taken, mc.range) AS `range`,
  IFNULL(t.review, mc.review) AS `review`,
  IFNULL(t.validate, mc.validate) AS `validate`
FROM Master_CTE mc LEFT OUTER JOIN 
(SELECT m.range AS `range`, 
       Ifnull((SELECT Count(r.req_status) AS `reviewcount` 
               FROM   T1 r 
               WHERE  r.req_status = 'READY_FOR_REV' 
                      AND r.time_taken = m.range 
               GROUP  BY r.time_taken), 0) `review`, 
       Ifnull((SELECT Count(s.req_status) AS `reviewcount `
               FROM   T1 s 
               WHERE  s.req_status = 'READY_FOR_VAL' 
                      AND s.time_taken = m.range
               GROUP  BY s.time_taken), 0) `validate`
FROM   V1 m 
GROUP  BY m.range) t

Имена таблиц заменены на T1, а имена представлений - на V1.

Подзапрос после LEFT OUTER JOIN работает нормально, когда я запускаю индивидуально, но когда я объединяю их вместе, он начинает выдавать ошибку, как показано в заголовке.

Пожалуйста, помогите

1 Ответ

0 голосов
/ 17 октября 2018

В LEFT OUTER JOIN отсутствует условие соединения, то есть что-то вроде ON t.range=mc.range или что-то еще, что ваше условие соединения должно быть в самом конце.

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