Php 如何在一个查询中计算两个不同的事物
我得到了这个问题:Php 如何在一个查询中计算两个不同的事物,php,mysql,count,Php,Mysql,Count,我得到了这个问题: $q = $mysql->query(" SELECT *, COUNT(`crimeDescription`) AS total_count FROM `crimes` GROUP BY `crimeDescription` ORDER BY COUNT(`crimeDescription`) DESC Limit 15") or die($mysql->error); 我还想让对他犯下这种罪行最多的人(crimeIssuedTo) 例如: 1 | G
$q = $mysql->query("
SELECT *, COUNT(`crimeDescription`) AS total_count
FROM `crimes`
GROUP BY `crimeDescription`
ORDER BY COUNT(`crimeDescription`) DESC
Limit 15") or die($mysql->error);
我还想让对他犯下这种罪行最多的人(crimeIssuedTo)
例如:
1 | Grand Theft Auto | Most to: User_A | Total: 500
2 | Attempted Murder | Most to: User_C | Total: 453
3 | Assault | Most to: User_D | Total: 451
我该怎么做呢?像下面这样的事情怎么样:
SELECT *, COUNT(*) AS total_count,
(
SELECT p.Username
FROM crimes AS sc
INNER JOIN players AS p ON p.ID = sc.crimeIssuedTo
WHERE sc.crimeDescription = sm.crimeDescription
GROUP BY sc.crimeIssuedTo
ORDER BY COUNT(*) DESC
LIMIT 1
) AS PersonWithMostOffenses
FROM crimes AS sm
GROUP BY sm.crimeDescription
ORDER BY COUNT(*) DESC
LIMIT 15
请将您的表结构放入可能重复的Hey Thank,它可以工作,但它返回的是ID,而不是大多数人的用户名。如果我想在同一个查询中从ID为PersonWithmostFenses的玩家中选择用户名,该怎么办?@user3494083,我更新了我的答案,加入子查询中的
players
表。如果对你有用,请告诉我。非常感谢!另外,我如何添加另一个(选择)作为。。。在同一个查询中,由于我也想获得PersonIssuedMost,您只需遵循与上述子查询中相同的模式。尝试一下PersonIssuedMost
查询,如果您有任何问题,请发布另一个问题。