Php mysql语句中的组子查询计数?
想知道这是否可能。在下面的声明中,我从不同的表中获取计数。这将打印每个用户id的总计数组 是否有任何方法可以合并这些总计,以便返回一个包含总计的数组?我使用子查询是因为联接在性能方面受到了影响,所以联接不是一个选项Php mysql语句中的组子查询计数?,php,mysql,sql,Php,Mysql,Sql,想知道这是否可能。在下面的声明中,我从不同的表中获取计数。这将打印每个用户id的总计数组 是否有任何方法可以合并这些总计,以便返回一个包含总计的数组?我使用子查询是因为联接在性能方面受到了影响,所以联接不是一个选项 $stmt = $db->prepare(" SELECT (SELECT COUNT(*) FROM log1 WHERE log1.user_id = users.user_id AS l1, (SELECT COUNT(*) FRO
$stmt = $db->prepare("
SELECT
(SELECT COUNT(*) FROM log1 WHERE log1.user_id = users.user_id AS l1,
(SELECT COUNT(*) FROM log2 WHERE log2.user_id = users.user_id AS l2,
(SELECT COUNT(*) FROM log3 WHERE log3.user_id = users.user_id AS l3,
(SELECT COUNT(*) FROM log4 WHERE log4.user_id = users.user_id AS l4
FROM computers
INNER JOIN users
ON users.computer_id = computers.computer_id
WHERE computers.account_id = :cw_account_id AND computers.status = :cw_status
");
$binding = array(
'cw_account_id' => $_SESSION['user']['account_id'],
'cw_status' => 1
);
$stmt->execute($binding);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
目前,我正在做类似的事情,以获得我想要的结果:
foreach($result as $key)
{
$new['l1'] = $new['l1'] + $key['l1'];
$new['l2'] = $new['l2'] + $key['l2'];
$new['l3'] = $new['l3'] + $key['l3'];
$new['l4'] = $new['l4'] + $key['l4'];
}
return $new;
使用:
此查询返回一行总计数和所需结果:
$new = $result[0];
SUM()如何在这里添加任何值?这是完全相同的结果。@Used\u By\u原始查询为每个用户返回许多行。使用
SUM
的查询返回一行,因此结果不同。如果使用此查询,则不需要循环foreach($result as$key).
。然后完全删除计算机和用户表?也许我不明白;如果是这样的话,对不起-谢谢你。。。我甚至都没想过要总结一下@已被使用-计算机和用户表用于获取正确“帐户”的计数。。。每个人都有一个帐户id。。。它链接到任何数量的计算机,而这些计算机链接到任何数量的用户。我只是想了解一下他们账户中的所有信息。
$new = $result[0];