MySQL查询错误COUNT

米格尔·韦洛索(MiguelVeloso)

我正在开发一个应用程序。我必须做一个查询,才能看到我作为客人或管理员的房间。这很容易。问题是我想同时获得同一房间内的玩家人数。

SELECT rooms.id, rooms.name, rooms.buyin, rooms.administrator, rooms.creation_date,
       rooms.max_players, rooms.min_players, count(room_players.room)
FROM rooms, room_players
WHERE administrator = 1 and room_players.room = rooms.id 

我有一个包含房间和其他房间(room_players)的表,该表是用户和房间之间的匹配项。如果我删除count(room_players.room)and room_players.room = rooms.id我有我要管理的房间。但是我也需要在同一房间内的玩家数量。

戈登·利诺夫(Gordon Linoff)

您的查询需要一个group by使用COUNT()中的时select,它成为返回一行的汇总查询-表中所有行的摘要。

SELECT r.id, r.name, r.buyin, r.administrator, r.creation_date,
       r.max_players, r.min_players, count(rp.room)
FROM rooms r join
     room_players rp
     ON rp.room = r.id 
WHERE administrator = 1 
GROUP BY r.id;

我还将连接语法固定为显式连接,并添加了表别名以使查询更具可读性。

编辑:

我怀疑您想要的查询是这样的:

SELECT r.id, r.name, r.buyin, r.administrator, r.creation_date,
       r.max_players, r.min_players, count(rp.room)
FROM rooms r join
     room_players rp
     ON rp.room = r.id 
WHERE administrator <> 1 
GROUP BY r.id
HAVING sum(user = 1) > 0;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章