Запрос перестает работать при попытке group_concat говорит неизвестный столбец - PullRequest
0 голосов
/ 16 февраля 2012

У меня возникает следующая проблема, когда я пытаюсь столбец group_concat, мой запрос перестает работать и говорит Unknown column 'dbname.tablename.columnname' in 'where clause'. Я постараюсь обобщить как рабочий запрос, так и нерабочий в меру своих возможностей:

Рабочий запрос:

SELECT
    table1.items,
    table2.opt1,
    table3.opt2

FROM table1

LEFT JOIN table2 ON table1.id = table2.table1_id
...
LEFT JOIN table3 ON table2.id = table3.table2_id
WHERE
...
GROUP BY table1.items
HAVING
(SELECT COUNT(*) FROM table3 WHERE table3.table2_id = table2.id AND (table3.opt2 = 1)) = (1)

нерабочий запрос:

SELECT
   table1.items,
   table2.opt1,
   GROUP_CONCAT(table3.opt2 SEPERATOR ', ') as concat_opt2

FROM table1

LEFT JOIN table2 ON table1.id = table2.table1_id
...
LEFT JOIN table3 ON table2.id = table3.table2_id
WHERE
...
GROUP BY table1.items
HAVING
(SELECT COUNT(*) FROM table3 WHERE table3.table2_id = table2.id  AND (table3.opt2 = 1)) = (1)

Рабочий запрос возвращает результаты, как и ожидалось. Теперь я хочу их group_concat:} table3.opt2, поэтому, когда я добавляю group_concat, я получаю ошибку unknown column 'dbname.table2.id' Я подозреваю, что я получаю эту ошибку, имея предложение ...

Редактировать1: Добавлено GROUP BY table1.items После WHERE до HAVING (все равно получаю ту же ошибку).

...