Magento では、Zend DDL を使用して、テーブルの値を「websites」という単一のフィールドに group_concat() するクエリを作成しています。
where句が追加されるまで、クエリは正常に機能します。
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 不明な列 'websites' が 'where 句' にあります
どうしてこれなの?誰でもこれで私を助けることができますか? 理想的には Zend 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');
ありがとう