Длинный SQL-запрос не выполняется - PullRequest
0 голосов
/ 24 января 2019

Этот запрос, полученный с другого форума, не выполнен. При запуске в Sequel PRO я получаю это сообщение об ошибке:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS bar
)
SELECT
    q.id
FROM
    questions q
INNER JOIN
    concat_data cd
ON
 ' at line 27

Этот запрос я пытаюсь выполнить:

WITH raw_data AS (
    SELECT
        q.id AS id
      , q.description AS description
      , q.source AS source
      , q.image AS image
      , GROUP_CONCAT(c.choice ORDER BY c.choice) AS foo
    FROM
        questions q
    INNER JOIN
        choices c
    ON
        c.question_id = q.id
    GROUP BY
        q.id
      , q.description
      , q.source
      , q.image
),
concat_data AS (
    SELECT
        MIN(id) AS min_id
      , CONCAT(description, source, image, foo) AS bar
    FROM
        raw_data
    GROUP BY
        CONCAT(description, source, image, foo) AS bar
)
SELECT
    q.id
FROM
    questions q
INNER JOIN
    concat_data cd
ON
    cd.min_id = q.id;

И ради этого. Я пытаюсь найти дубликаты из таблицы questions, которая имеет сводную таблицу choices. Удалите дубликаты и сохраните «оригинал».

1 Ответ

0 голосов
/ 24 января 2019

Хотя вам нужно использовать «as bar» в выбранной части (чтобы сделать псевдоним «bar» для этой конкатенации), вам НЕ нужен «AS bar» в предложении GROUP BY.

GROUP BY
    CONCAT(description, source, image, foo)

должен сделать.

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