Пехлеви MySQL: Неизвестная Колонка в операторе Where - используя GROUP_CONCAT ()

В Magento я использую Пехлеви DDL, чтобы создать вопрос group_concat() значения таблиц в единственную область, названную 'веб-сайтами'.

Вопрос хорошо работает, пока нет где добавленный пункт.

SELECT
  `main_table`.*,
  GROUP_CONCAT(website.website_id) AS `websites`
FROM
  `megamenu_entity` AS `main_table`
   LEFT JOIN `megamenu_website` AS `website`
   ON main_table.entity_id = website.megamenu_id
WHERE
  (websites = '1')
GROUP BY `main_table`.`entity_id`

который дает ошибку:

SQLSTATE [42S22]: Колонка, не найденная: 1054 Неизвестных колонки 'веб-сайты' в, 'где пункт'

Почему это? Кто-либо может выручить меня с этим? Идеально на Пехлеви DDL. Это - то, что я делаю в данный момент.

$collection->getSelect()->joinLeft(
  array('website' => $collection->getTable('megamenu/megamenu_website')),
  "main_table.entity_id = website.megamenu_id",
  array('websites' => new Zend_Db_Expr('GROUP_CONCAT(website.website_id)'))
)->group('main_table.entity_id');

Спасибо

0

3 ответы

Ваш , ГДЕ пункт не признает псевдонимы колонки. Псевдонимы колонки могут использоваться в GROUP BY , ORDER BY и НАЛИЧИЕ пункты.

Обновленный ваш вопрос, чтобы использовать имя первоначального столбца, такое как:

SELECT
  `main_table`.*,
  GROUP_CONCAT(website.website_id) AS `websites`
FROM
  `megamenu_entity` AS `main_table`
   LEFT JOIN `megamenu_website` AS `website`
   ON main_table.entity_id = website.megamenu_id
WHERE
  (website.website_id = '1')
GROUP BY `main_table`.`entity_id`
1
добавлено
Абсолютный спаситель, я никогда не знал что я couldn' t используют псевдонимы колонки в где пункты. Спасибо
добавлено автор lukefowell, источник

Попробуйте тыс вопроса..

SELECT
  `main_table`.*,
  GROUP_CONCAT(website.website_id) AS `websites`
FROM
  `megamenu_entity` AS `main_table`
   LEFT JOIN `megamenu_website` AS `website`
   ON main_table.entity_id = website.megamenu_id
WHERE
  ((GROUP_CONCAT(website.website_id)) = '1')
GROUP BY `main_table`.`entity_id`

Ваш вопрос, не работающий, потому что , где , выполняют перед <сильной> группой .

0
добавлено

Пожалуйста, попробуйте ниже кода

SELECT * FROM 
(                     
SELECT
`main_table`.*,
GROUP_CONCAT(website.website_id) AS `websites`
FROM
`megamenu_entity` AS `main_table`
LEFT JOIN `megamenu_website` AS `website`
ON main_table.entity_id = website.megamenu_id ) E
WHERE
(E.websites = '1')
GROUP BY `main_table`.`entity_id`
0
добавлено
На самом деле имя псевдонима колонки не использует в качестве имени столбца для этого, мы должны написать действующие взгляды.
добавлено автор Madhav, источник
DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MySQL
MySQL
995 участник(ов)

The group is about MySQL. For code use hastebin.com. Admin: @smlkw

SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)