您的位置:首页 > 其它

多表查询的解决方案

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'];
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: