你可以使用子查询的方式将两个查询合并成一个。以下是将两个查询合并的示例代码:
$user_count = Db::name('user')
->where('company_id', '>', 0)
->field([
"COUNT(*) as user_count",
"SUM(CASE WHEN lastlogintime > " . ($curtm - 3600*24*30) . " AND lastlogintime < " . ($curtm - 3600*24*30*3) . " THEN 1 ELSE 0 END) as nologin_1mon",
"SUM(CASE WHEN lasglogintime > " . ($curtm - 3600*24*30*3) ." AND lastlogintime < ". ($curtm - 3600*24*30*6) . " THEN 1 ELSE 0 END) as nologin_3mon",
"SUM(CASE WHEN lasglogintime > " . ($curtm - 3600*24*30*6) . " THEN 1 ELSE 0 END) as nologin_6mon"
])
->find();
$user_count = [
'user_count' => $user_count['user_count'],
'nologin_1mon' => $user_count['nologin_1mon'],
'nologin_3mon' => $user_count['nologin_3mon'],
'nologin_6mon' => $user_count['nologin_6mon']
];
这样,你就可以通过 $user_count
数组获取到合并后的结果。请注意,在合并查询时,要确保字段名不会冲突,并且使用正确的逻辑运算符将多个子条件连接起来。
内容由零声教学AI助手提供,问题来源于学员提问