多表查询--顾名思义是通过查询多个表得到想要的数据。
这里依然使用Events模型为例,events表(表中含有一些字段,例如:id[事件id],user_id[创建事件的用户的id],name[事件的名字],description[事件的描述],dateline[创建事件的日期]);
eventdate表中存放events表中事件的举办日期(其中字段有:id[主键],event_id[事件id],dateline[事件举办时间]);此表中的event_id关联events表中的id字段。
创建好模型后,我们要查询events表得到事件信息同时按事件举办日期进行排序,这就关系到了多表查询:
$event_id = 1;
$eventUserId = 4;
//获取数据库连接
$conn = QDB::getConn();
//创建一个选择器对象
$select = new QDB_Select($conn);
//选择要查询的表
$select->from('event', 'id,name');
//左连接一个表
$select->joinLeft('eventdate', '*', 'event.id = eventdate.event_id');
//查询条件
$select->where('event.id != ? and user_id = ?',$event_id,$eventUserId);
//排序
$select->order('eventdate.dateline DESC');
//返回结果集
$anothers_evnents = $select->get(5);
//渲染视图
$this->_view['anothers_events'] = $anothers_evnents;
可用dump($anothers_events); 输出查看所查询的结果集。