2013-02-18 71 views
1

即時通訊中的活動記錄卡住了。使用YII框架的活動記錄的多個連接

即時通訊使用我的數據庫中的每個表模型。

我試圖得到的SQL查詢和從3表加入。

我要完成什麼是SQL命令相同:

SELECT location_code as stopkey, bay_no bay_no, description stop_name, route_area_code route_area_code, latitude latitude, longitude, build_code build_code, message_time message_time, ip_address ip_address, route.route_code route, make make, last_impact last_impact, impact_count impact_count, last_bootup last_bootup, bootup_count bootup_count, last_active_hour last_active_hour, last_active_day last_active_day, operator.operator_code operator_code, routes routes, bearing 
       FROM snapshot_stop_status route 
       JOIN route_visibility ON route.route_id = route_visibility.route_id 
       JOIN operator ON operator.operator_id = route_visibility.operator_id 
       WHERE usernm = 'me' 

    ORDER BY location_code 

這裏是我試過至今:

public function relations() { 

      return array(
       'RoutesVisibility' =>array(self::MANY_MANY,'route_visibility','route_id'), 

      ); 
     } 

我怎麼能在模型中完成這個使用關係函數?

任何形式的幫助,將不勝感激

回答

1

route_visibility是加入表配合運營商snapshot_stop_status。因此,在警予您可以指定表做關係:

'operators' =>array(self::MANY_MANY,'Operator','route_visibility(route_id,operator_id)'), 

而在運營商:

$criteria = new CDbCriteria; 
$criteria->with = array('operators' => array('condition' => 'usernm = "me"')); 
$models => Route:model()->findAll($criteria); 

'routes' =>array(self::MANY_MANY,'Route','route_visibility(operator_id, route_id)'), 

然後你就可以用類似請求