在花了几个小时找到以下问题的解决方案后,我希望你能帮助我。
我有两张桌子:
Event hasmany Appointments and Appointment belongsto Event
现在我在我的表演EventsController
:
$this->Event->find('all')
现在我想按预约订购活动。使最早约会的事件在数组中排在第一位,依此类推。我尝试了很多方法,包括可包含、连接、分组、子选择,但没有任何效果。
执行 find('all')$this->Event->Appointment
不是一个解决方案,因为我希望每个事件都只是一个。
编辑#1:到目前为止,我唯一的解决方案是 $events = $this->Event->find('all', array( 'joins' => array( array( 'table' => '(SELECT event_id, MIN(start ) 从约会开始 GROUP BY event_id)', 'alias' => 'Appointment', 'type' => 'LEFT', 'conditions' => array( 'Event.id = Appointment.event_id' ) ) ), 'order ' => array('Appointment.start ASC' ) ));
但这不是最好的解决方案!