0
我想通过使用当前表中的字段和相关表中的字段来加入具有组合键(SOLineNumber)的表。我试图使用ActiveRecord模型关系和连接条件。加入Yii模型关系
我有以下结构:
PickTicket
PickTicketNumber
SONumber
PickTicketLine
PickTicketNumber
SOLineNumber
SONumber
SONumber
SOLineNumber
SONumber SOLineNumber
我想从pickticketline去SOLineNumber。
这里是我试过到目前为止: PickTicketLine型号的关系:
return array(
'PickTicket' => array(self::BELONGS_TO, 'TblwhPickTicket', 'PickTicketNumber'),
'SOLine' => array(self::BELONGS_TO, 'TblsoSOLine', 'PickTicket.SONumber, SOLineNumber', 'join'=>'PickTicket'),
)
但它引发我一个错误说没有定义PickTicketLine.PickTicket.SONumber。
编辑:如果我写了一个常规查询要做到这一点,我会做到以下几点:
SELECT sol.*
FROM TblwhPickTicketLine ptl
JOIN TblwhPickTicket pt ON (pt.PickTicketNumber = ptl.PickTicketNumber)
JOIN TblsoSOLine sol ON (pt.SONumber = sol.SONumber AND ptl.LineRef = sol.SOLineNumber)
WHERE ptl.PickTicketNumber = '12345'
AND ptl.PickTicketLineNumber = '1'
恐怕没有工作。难点在于SOLineNumber存储在PickTicketLine表中,但SONumber存储在PickTicket表中。我已经包含了primaryKey函数(今天花了我几个小时才弄清楚),感谢您将它包括在内以获得完整性。我不希望任何人花费这么多时间来试图找出一个简单的连接。 –
我写了实际的sql查询,我希望这个运行。希望有所帮助! :) –