2 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
$data=Db::name($this->name)->field('id',sender)->where($where)->select();
if(empty($data)) return [];
$data_sender_ids=array_unique(array_column($data,'sender'));
$model_member=new Member();
$data_members=$model_member->field(...)
->whereIn('id',$data_sender_ids)
->where(delstatus,'<>',2)
->get();
if(empty($data_members)) return [];
$sender_ids=array_column($data_members,'id');
foreach($data as $key=>$value){
if(!in_array($value['sender'],$sender_ids)){
unset($data[$key]);
}
}
return $data;
两条sql搞定
//我不清楚你的php框架,这段代码你变通一下
$data_members=$model_member->field(...)
->whereIn('id',$data_sender_ids)
->where(delstatus,'<>',2)
->get();
猛跑小猪
TA贡献1858条经验 获得超8个赞
非常简单,根据你的程序逻辑
你 select
出结果后,循环取出ID组成多个IDs
然后 where
子句 使用 IN
IDs 取出数据
就能解决你的疑问了,不要对Mysql循环。
- 2 回答
- 0 关注
- 621 浏览
添加回答
举报
0/150
提交
取消