【发布时间】:2014-04-25 01:13:15
【问题描述】:
我有几张桌子。主表为contractors,并有一个链接表address,其中有某类地址(1, 2, 3)。在做LEFT JOIN ORDER BY type 时需要,因为在某些情况下,可能会使用1 以及2 或3 类型的地址,但有时地址在字段type 中不连续。
我提出了一个满足我要求的请求,但无法在 ActiveRecord 中创建相同的查询。
所以我直接在数据库中的请求是这样的:
SELECT t.id, addresses.address FROM contractor as t
LEFT JOIN (SELECT * FROM address ORDER BY address.type) as addresses
ON addresses.address != '' AND addresses.contractor_id = t.id
WHERE ((t.type='store') AND (t.name LIKE '%name%' OR addresses.address LIKE '%name%'))
GROUP BY t.id
在模型关系中,现在看起来:
public function relations(){
'addresses' => array(
self::HAS_MANY,
'Address',
'contractor_id',
'on' => "addresses.address != ''",
'order' => 'addresses.type ASC'
),
}
我想澄清一下:我只能使用ActiveRecord。
【问题讨论】: