Relation is defined as follows:
public function relations() {
return array(
...
'categories' => array(self::MANY_MANY, 'Category', 'products_categories(product_id,category_id)'),
...
);
}
debug query in application.log:
2010/02/17 14:58:41 [profile] [system.db.CDbCommand.query] begin:system.db.CDbCommand.query(SELECT COUNT(DISTINCT `t`.`id`) FROM `products` `t` LEFT OUTER JOIN `brands` `brand` ON (`t`.`brand_id`=`brand`.`id`) LEFT OUTER JOIN `products_categories` `categories_categories` ON (`t`.`id`=`categories_categories`.`product_id`) LEFT OUTER JOIN `categories` `categories` ON (`categories`.`id`=`categories_categories`.`category_id`) WHERE (categories.id = 87))
2010/02/17 14:58:41 [profile] [system.db.CDbCommand.query] end:system.db.CDbCommand.query(SELECT COUNT(DISTINCT `t`.`id`) FROM `products` `t` LEFT OUTER JOIN `brands` `brand` ON (`t`.`brand_id`=`brand`.`id`) LEFT OUTER JOIN `products_categories` `categories_categories` ON (`t`.`id`=`categories_categories`.`product_id`) LEFT OUTER JOIN `categories` `categories` ON (`categories`.`id`=`categories_categories`.`category_id`) WHERE (categories.id = 87))
2010/02/17 14:58:41 [profile] [system.db.CDbCommand.query] begin:system.db.CDbCommand.query(SELECT `t`.`id` AS `t0_c0`, `t`.`name` AS `t0_c1`, `t`.`ingredients` AS `t0_c2`, `t`.`brand_id` AS `t0_c3`, `t`.`country_id` AS `t0_c4`, `t`.`manufacturer_id` AS `t0_c5`, `t`.`unit` AS `t0_c6`, `t`.`weight` AS `t0_c7`, `t`.`varWeight` AS `t0_c8`, `t`.`info` AS `t0_c9`, `t`.`status` AS `t0_c10`, `t`.`price` AS `t0_c11`, `t`.`vat` AS `t0_c12`, `t`.`tare` AS `t0_c13`, `t`.`quantity` AS `t0_c14`, `brand`.`id` AS `t1_c0`, `brand`.`name` AS `t1_c1` FROM `products` `t` LEFT OUTER JOIN `brands` `brand` ON (`t`.`brand_id`=`brand`.`id`) WHERE (categories.id = 87) ORDER BY brand.name ASC, products.name ASC LIMIT 12)
2010/02/17 14:58:41 [profile] [system.db.CDbCommand.query] end:system.db.CDbCommand.query(SELECT `t`.`id` AS `t0_c0`, `t`.`name` AS `t0_c1`, `t`.`ingredients` AS `t0_c2`, `t`.`brand_id` AS `t0_c3`, `t`.`country_id` AS `t0_c4`, `t`.`manufacturer_id` AS `t0_c5`, `t`.`unit` AS `t0_c6`, `t`.`weight` AS `t0_c7`, `t`.`varWeight` AS `t0_c8`, `t`.`info` AS `t0_c9`, `t`.`status` AS `t0_c10`, `t`.`price` AS `t0_c11`, `t`.`vat` AS `t0_c12`, `t`.`tare` AS `t0_c13`, `t`.`quantity` AS `t0_c14`, `brand`.`id` AS `t1_c0`, `brand`.`name` AS `t1_c1` FROM `products` `t` LEFT OUTER JOIN `brands` `brand` ON (`t`.`brand_id`=`brand`.`id`) WHERE (categories.id = 87) ORDER BY brand.name ASC, products.name ASC LIMIT 12)
2010/02/17 14:58:41 [error] [system.db.CDbCommand] Error in querying SQL: SELECT `t`.`id` AS `t0_c0`, `t`.`name` AS `t0_c1`, `t`.`ingredients` AS `t0_c2`, `t`.`brand_id` AS `t0_c3`, `t`.`country_id` AS `t0_c4`, `t`.`manufacturer_id` AS `t0_c5`, `t`.`unit` AS `t0_c6`, `t`.`weight` AS `t0_c7`, `t`.`varWeight` AS `t0_c8`, `t`.`info` AS `t0_c9`, `t`.`status` AS `t0_c10`, `t`.`price` AS `t0_c11`, `t`.`vat` AS `t0_c12`, `t`.`tare` AS `t0_c13`, `t`.`quantity` AS `t0_c14`, `brand`.`id` AS `t1_c0`, `brand`.`name` AS `t1_c1` FROM `products` `t` LEFT OUTER JOIN `brands` `brand` ON (`t`.`brand_id`=`brand`.`id`) WHERE (categories.id = 87) ORDER BY brand.name ASC, products.name ASC LIMIT 12
2010/02/17 14:58:41 [error] [exception.CDbException] exception 'CDbException' with message 'CDbCommand failed to execute the SQL statement: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'categories.id' in 'where clause'' in /var/www/citystore/framework/db/CDbCommand.php:375
S