1

問題:

主キーをカスタム関係クエリにバインドする方法は?

コンテキスト、何のために:

1 つのソースは複数の異なる変更 (MANY_MANY) に関連付けることができ、各変更は何らかの製品 (BELONGS_TO) に関連付けられます。複数の製品に 1 つのソースがある場合、それは製品が同じであることを意味します。これが基準です。(同じ製品をマージすることはできません。同じではないことが判明する可能性があるためですが、それらをマージすると、元に戻すことはできません)。

そのため、ある製品に関連するすべての注文を検索する必要がある場合、実際には現在の製品だけでなく、同じ製品のすべての注文を検索したいと考えています。

関係は次のようになります。

'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 が機能していません。ここでは、主キーをバインドする必要がある場所を示すだけです。

そこに主キーをバインドする方法について何か提案はありますか?

4

1 に答える 1