繁体   English   中英

加入两个表后,Mysql 统计一个字段上的用户总数

[英]Mysql count total number of users on a field after joining two tables

需要知道获取每个管理员角色的用户总数并打印它的语法是什么。

Roles
id  |  name
---    ----
1   |  admin
2   |  moderator
3   |  user

表2

users
id  |  name | role
--     ----   ----
1   |  a    |  1
2   |  b    |  2
3   |  c    |  2
4   |  d    |  2
5   |  e    |  3
6   |  f    |  3
7   |  g    |  3
8   |  h    |  1
9   |  i    |  1

代码

 <?php
   $sql = "select r.name, r.id from role r, users u where r.id=u.role";
   $result = mysql_query($sql);
   $count = 0;
   while($row = mysql_fetch_array($result))
    {
      if($count!=$row['1'])
        {
          echo $row['0']."- NEED TOTAL NUMBER OF USERS ON EACH ROLES TO BE PRINTED HERE.";
          $count=$row['1'];
        }
?>
SELECT  COUNT(b.role)
FROM    roles a
        LEFT JOIN  users b
            ON a.ID = b.role
WHERE   a.name = 'admin'

更新 1

SELECT  a.name, COUNT(b.role) totalCount
FROM    roles a
        LEFT JOIN  users b
            ON a.ID = b.role
GROUP BY a.Name

你需要一个 group by 子句:)

SELECT a.name, COUNT(b.id) "Total num of Users"
FROM    roles a, users b
        WHERE a.ID = b.role
group by a.ID,b.role
$result=mysql_fetch_array(mysql_query('select count(*) as total from users where role="1" '));
$result = $result['total'];
echo "Total Admins: ".$result; 

这现在有效!

可能对你有帮助:

<?php
$sql = "select r.name, r.id, count(u.role) as ct from role r, users u where r.id=u.role group by u.role";
$result = mysql_query($sql);
$count = 0;
while($row = mysql_fetch_array($result))
{
    if($row['2']==0)
    {
        echo $row['0']."- NEED TOTAL NUMBER OF USERS ON EACH ROLES";
    }
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM