在一个查询中为每条记录选择和计数

9vw9lbht  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(368)

我必须建立数据库表:“用户”和“结果”。我想从表用户浏览用户,并在表结果中计算每个用户的特定记录(计算玩过的游戏和赢过的游戏)。我的问题:

$q = "SELECT *, (SELECT count(*)  
                 FROM users, results 
                 WHERE (results.u1 = users.id OR results.u2 = users.id) 
                 AND (results.p1 > 0 OR results.p2 > 0) 
                 AND gid = '$gid' AND users.gender = '$gender') as gp 
      FROM users LEFT JOIN results 
                               ON users.id = results.u1 
                                           || 
                                  users.id = results.u2 
      WHERE gid = '$gid' AND users.gender = '$gender' 
      GROUP BY users.id LIMIT 0, 9";

这确实返回了9个用户,但是“gp”显示了所有记录的计数,但是我希望gp part只计算循环中每个用户的记录,并按其排序。
你能帮我回答这个问题吗?谢谢您!

v8wbuo2f

v8wbuo2f1#

选择用户id并创建其别名,然后在子查询中使用它

select user_id as userid  (select  count(*) from result where results.u2 = userid) as result_count  from users ;

相关问题