多表查询的解决方案
2015-06-04 16:07
239 查看
1.连表查询
2先查出副表的id,再在主表查询需要的字段,这样在循环查询数据库,不建议这样做
3数组键值对比(大大减轻数据库压力)
$data=$demandModel->field('medicine_id,sum(number) as number')->where($where)->group('medicine_id')
->order('add_time desc,id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
$name=M('medicine')->field('id,name')->select();//整个基药库
//处理成键值对,数组键值对应成数据表id
$name_list=i_array_column($name, $name['name'],'id');
$data=i_array_column($data, $data['medicine_id'],'medicine_id');//满足条件的药品id
//获取药名
foreach($data as $k=>$v){
if(in_array($v['medicine_id'], $name_list[$k])){
$data[$k]['name']=$name_list[$k]['name'];
}
}
2先查出副表的id,再在主表查询需要的字段,这样在循环查询数据库,不建议这样做
3数组键值对比(大大减轻数据库压力)
$data=$demandModel->field('medicine_id,sum(number) as number')->where($where)->group('medicine_id')
->order('add_time desc,id desc')->limit($Page->firstRow.','.$Page->listRows)->select();
$name=M('medicine')->field('id,name')->select();//整个基药库
//处理成键值对,数组键值对应成数据表id
$name_list=i_array_column($name, $name['name'],'id');
$data=i_array_column($data, $data['medicine_id'],'medicine_id');//满足条件的药品id
//获取药名
foreach($data as $k=>$v){
if(in_array($v['medicine_id'], $name_list[$k])){
$data[$k]['name']=$name_list[$k]['name'];
}
}
相关文章推荐
- 社会影响力入门:打造有所作为的公司
- C++四种强制类型转换运算符
- APP4Smarthome项目总结1
- Django数据库使用第一篇
- 屏蔽runtime error等错误的弹出框
- Hadoop到底能干啥
- 正则表达式详解
- 跨服务器访问数据库
- 随机抽奖 --java
- 什么是艺术?众筹出资人和专家的观点惊人一致
- .net防止Sql注入之SqlParameter参数详解
- 南京暴雨全城看海 降水量相当于3.3亿吨
- (我总结的实用主义)Loadrunner运行常见错误
- 原来宏定义可以这么玩
- android studio 常用快捷分享
- Android设置Selector不同状态下颜色及图片
- OGNL使用方法总结
- 数据分析师常见的10道面试题解答
- 通过电影有效速记GRE词汇方法之从听力突破口语语音
- Android九宫格解锁的实现