2 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗 獲得超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貢獻(xiàn)1858條經(jīng)驗 獲得超8個贊
非常簡單,根據(jù)你的程序邏輯
你 select
出結(jié)果后,循環(huán)取出ID組成多個IDs
然后 where
子句 使用 IN
IDs 取出數(shù)據(jù)
就能解決你的疑問了,不要對Mysql循環(huán)。
- 2 回答
- 0 關(guān)注
- 648 瀏覽
添加回答
舉報
0/150
提交
取消