我正在寻找构建动态查询和返回在线用户的方法。 请检查下面的代码。我无法找到错误的地方? 回复我:未知专栏' is_online'在' where子句' ...
if (isset($options['online']) && $options['online'] == 1) {
$where[] = ' AND is_online = 1';
}
$sql = ' SELECT
u1.*,
u2.*,
COUNT(s.userid) AS is_online
FROM `#__users`
AS
u1
LEFT JOIN
`#__ds_users`
AS
u2
ON
u1.id = u2.id
LEFT JOIN
`#__session`
AS
s
ON
u1.id = s.userid
WHERE
1=1
'.implode('', $where).'
GROUP BY
u1.id';
答案 0 :(得分:1)
您希望将该子句的该部分更改为having
子句:
having is_online = 1
此变量使用聚合函数,因此您无法将值放在where
子句中。但是,您可以改为:
where s.userid is not null
或者,更简单地说,消除条件并将left join
更改为inner join
。