tp5 数据库查询 如何进行多对多查询

我邀请的会员(在会员表)有多个,邀请的会员会去做任务(任务表)

想查询一下我邀请的所有会员 完成的单数 这样的sql 怎么去写才是更优化的。~~~~

我当前想到的就是直接先查会员 然后用foreach 再一个个的去查

谢谢

阅读 2.4k
2 个回答
新手上路,请多包涵

我做的话思路大概是这样

如果有redis就从redis查数据,不走mysql

// 查询我所邀请的会员, 并获取id
$aMember    = db('会员表')->where($where)->field($field)->select();
$aMemberIds = array_column($aMember, 'member_id');

// 查询会员id对应的任务
$aTask = db('任务表')->where(['member_id' => ['in', $aMemberIds]])->field($field)->select();

// 处理两个数组
foreach ($variable as $key => $value) {
    # code...
}

用leftjoin
field(count(id))

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题