问题:
如何将主键绑定到自定义关系查询?
上下文,用于:
一个来源可以与多个不同的修改 (MANY_MANY) 相关,每个修改都与某个产品 (BELONGS_TO) 相关。如果多个产品有一个来源,则意味着这些产品是相同的——这就是标准。(我不能只是合并相同的产品,因为结果可能它们不一样,但如果我合并它们 - 我不能将它们拆分回来)。
因此,当我需要查找与某个产品相关的所有订单时,我实际上想查找具有相同产品的所有订单,而不仅仅是当前产品。
关系如下所示:
'orderedProducts'=>array(self::HAS_MANY,'OrderProduct','','on'=>('modification_id IN (
select DISTINCT ms2.modification_id FROM products p1
LEFT JOIN products_modifications pm ON pm.product_id = p1.product_id
LEFT JOIN modifications_sources ms ON ms.modification_id = pm.modification_id
LEFT JOIN modifications_sources ms2 ON ms2.source_id = ms.source_id
where p1.product_id='.$this->primaryKey.'
)')),
'orders'=>array(self::HAS_MANY,'Order',array('order_id'=>'order_id'),'through'=>'orderedProducts'),
$this->primaryKey 不起作用,这里只是为了显示我需要绑定主键的位置。
有什么建议如何绑定主键吗?