Php 在没有分组依据的聚合查询中,选择列表的表达式#2包含未聚合列';a、 b.id';;

Php 在没有分组依据的聚合查询中,选择列表的表达式#2包含未聚合列';a、 b.id';;,php,mysql,mysqli,Php,Mysql,Mysqli,请帮我解决这个问题。 我的代码: $dn1 = mysqli_fetch_array(mysqli_query($con, ' select count(id) as recip , id as recipid , (select count(*) from pm) as npm from users where username="'.$recip.'"' )); 它给出以下错误 错误:在没有分组依据的聚合查询中,SELECT的表达式#2 列表包含未聚合的列“

请帮我解决这个问题。 我的代码:

$dn1 = mysqli_fetch_array(mysqli_query($con, '
select count(id) as recip
     , id as recipid
     , (select count(*) from pm) as npm 
  from users 
 where username="'.$recip.'"'
 ));
它给出以下错误

错误:在没有分组依据的聚合查询中,SELECT的表达式#2 列表包含未聚合的列“omapm.users.id”;这是 与sql\u模式不兼容=仅\u完整\u组\u由

请帮我纠正这个。 谢谢


无论如何,您不应该在sql命令中使用php变量。。这样,您就面临着sqlinjection的风险。。您应该检查mysql驱动程序的预处理语句和绑定参数

欢迎来到堆栈溢出!请阅读并阅读,特别是如何提问。你在这里的最佳选择是做你的研究,搜索相关的话题,然后尝试一下。在做了更多的研究和搜索之后,把你的尝试写下来,明确地说出你的困境,这可以帮助你得到更好的答案。
$dn1 = mysqli_fetch_array(mysqli_query($con, 
    'select count(id) as recip, id as recipid, 
        (select count(*) from pm) as npm 
    from users 
    where username="'.$recip.'"
    group by recipid, npm'));