Mysql 在一个查询中计算多个项目

Mysql 在一个查询中计算多个项目,mysql,count,Mysql,Count,这就是我现在得到的: SELECT `p`.`name`, SUM(`count`) FROM `player_items` LEFT JOIN `players` `p` ON (`p`.`id` = `player_items`.`player_id`) WHERE `itemtype` IN (2148, 2152, 2160) GROUP by `player_id`, `itemtype` 它提取ID为2148、2152、2160的项目类型的玩家名称和总和 我需要重写此查询,以便它为

这就是我现在得到的:

SELECT `p`.`name`, SUM(`count`) FROM `player_items`
LEFT JOIN `players` `p` ON (`p`.`id` = `player_items`.`player_id`)
WHERE `itemtype` IN (2148, 2152, 2160) GROUP by `player_id`, `itemtype`
它提取ID为2148、2152、2160的项目类型的玩家名称和总和

我需要重写此查询,以便它为每个ID选择items count,结果如下所示:

| NAME   | ITEM | COUNT |
| Player | 2148 | 10    |
| Player | 2152 | 760   |
| Player | 2160 | 0     |

|  NAME   | ITEM | COUNT |
| Player1 | 2148 | 890   |
| Player1 | 2152 | 5560  |
| Player1 | 2160 | 2584  |
PLAYER_NAME | 2148 | 10
PLAYER_NAME | 2148 | 4
PLAYER_NAME | 2148 | 4
PLAYER_NAME | 2152 | 60
PLAYER_NAME | 2152 | 20
PLAYER_NAME | 2160 | 100
结构:

Table name = player_items
ITEM ID(2148, 2152, 2160) - itemtype
ITEM COUNT - count.
请记住,每个项目id可以有其他“计数”值,例如,对于“玩家\项目”表中的一名玩家,该值如下所示:

| NAME   | ITEM | COUNT |
| Player | 2148 | 10    |
| Player | 2152 | 760   |
| Player | 2160 | 0     |

|  NAME   | ITEM | COUNT |
| Player1 | 2148 | 890   |
| Player1 | 2152 | 5560  |
| Player1 | 2160 | 2584  |
PLAYER_NAME | 2148 | 10
PLAYER_NAME | 2148 | 4
PLAYER_NAME | 2148 | 4
PLAYER_NAME | 2152 | 60
PLAYER_NAME | 2152 | 20
PLAYER_NAME | 2160 | 100

如果你什么都没有得到,请告诉我。

我不太确定你有什么问题。您不只是想返回项目id(称为itemtype)吗


这是一个社区wiki,因此如果需要可以更正。

我不太确定您的问题是什么。您不只是想返回项目id(称为itemtype)吗


这是一个社区wiki,因此可以根据需要进行更正。

此外,除非缺少玩家,否则您可能需要内部连接。此外,除非缺少玩家,否则您可能需要内部连接