[英]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.