如何将2个模型请求合并为一个查询

时间:2017-02-05 13:40:32

标签: php mysql yii model

我有两个表格的2个模型

"会话"表:

session_id | user_id |其他领域

" usercash"表:

user_id |金额|其他领域

这两张桌子之间没有任何关系。

我收到session_id,我的目标是获得金额并更新它。 使用纯SQL可以通过user_id连接表,通过一个简单的查询轻松进行数量选择。

可以使用模型和条件生成一个查询,这样我就可以使用userCashModel-> save()来更新金额了吗?

目前正以这种方式对数据库进行2次查询:(

        $session_model = Sessions::model()->findByAttributes(array('session_id'=>$session_id));

        // updating the amount 
        $user_cash = Usercash::model()->findByAttributes(array('userId'=>$session_model->user_id));
        $user_cash->realMoney += (double)$amount;
        $user_cash->save();

1 个答案:

答案 0 :(得分:0)

在yii1中你可以使用findBySql

 $user_cash = Usercash::model()->findBySql(
 " select * from usercash 
    innner join sessions on sessions.user_id = usercash.user_id 
    and sessions.session_id = :act_session_id", array(':act_session_id' => $session_id)
 );