我想在 ActiveRecord 中使用复合键。我有两张桌子。
报价和评论。报价包含 pk - id;评论 pk 是复合模块、节、cid
module - 模块名称,评论来自哪里。
section - 此模块的部分
cid - 标识符,在这种情况下,这是报价的 id。
在评论中,我像这样定义了主键。
public function primaryKey()
{
return array('module', 'section', 'cid');
}
下一个,我想获取那些记录,与报价相关的内容。因此,在 Quotes 我声明了关系:
'comments' => array(self::HAS_MANY, 'Comment', 'module, section, cid', 'params' => array(
':ypl0' => '"quotes"',
':ypl1' => '"quote"',
':ypl2' => 'id'
)),
所需的结果是:
SELECT * FROM quotes q
LEFT JOIN comments c ON (c.cid = q.id AND module = "quotes" AND section = "quote")
WHERE c.id IS NULL
SQL 正在工作,关系 - 不是。我做错了什么?