Php Yii1使用条件连接4个表

Php Yii1使用条件连接4个表,php,mysql,yii,Php,Mysql,Yii,我有向客户交付物品的数据库。为此,我有4个表,交付日志、交付、驱动程序、客户 (我们有交货日志表,因为有时一次交货有许多条目,如未交货和其他司机提货等) 现在我想问一下 交货日志中的最后1条记录(按日期添加的订单) 对于每个驾驶员的每次交付 交货地点=完成 我想要贝娄场 delivery_log.delivery_id delivery_log.driver_id delivery_log.message date_added delivery.name driver.name custo

我有向客户交付物品的数据库。为此,我有4个表,交付日志、交付、驱动程序、客户

(我们有交货日志表,因为有时一次交货有许多条目,如未交货和其他司机提货等)

现在我想问一下

交货日志中的最后1条记录(按日期添加的订单)

对于每个驾驶员的每次交付

交货地点=完成

我想要贝娄场

delivery_log.delivery_id  delivery_log.driver_id delivery_log.message date_added 
delivery.name driver.name 
customer.first_name customer.last_name
我的
delivery\u log
表中有多个991065

如何构建YII活动记录查询来执行此操作

感谢您的帮助。

您应该使用“加入”和“组”CDBC标准属性

$criteria->join = ' INNER JOIN "delivery" del ON del.id = t.delivery_id';
$criteria->join .= ' INNER JOIN "driver" dri ON dri.id = t.driver_id';
$criteria->join .= ' INNER JOIN "customer" cus ON cus.id = del.customer_id';
然后可以在“条件”、“排序”和/或“分组依据”中使用联接表

并使用数据提供程序获取所需的数据

$dataProvider = new CActiveDataProvider('delivery_log', array(
        'criteria' => $criteria,
    ));
这不是一个完整的答案,但它可能会帮助你继续下去,找到你需要的

$criteria->addCondition('del.status = \'done\'');
$criteria->order = 't.date_added';
$dataProvider = new CActiveDataProvider('delivery_log', array(
        'criteria' => $criteria,
    ));