mysql - SQL中查询多对多关系

标签 mysql

我有以下 SQL 关系

用户有很多游戏 游戏有可能的用户

User
----
id |  name | age |
__________________
1  |  mike |  11 |
2  |  jeff |  12 |
3  |  jake |  31 |
4  |  lemd |  81 |

Game
-----
id |  name  | time  |
_____________________
1  |  froyo | 11:10 |
2  |  honey | 12:22 |
3  |  combb | 13:00 |
4  |  lolli | 14:00 |


User_Game
----------
| userid  | game_id |
 ___________________
|   1     |   2     |
|   2     |   2     |
|   3     |   1     |
|   4     |   3     |
|   1     |   2     |
|   2     |   4     |
|   2     |   1     |

对于每个用户来说,有一种方法可以获得 他们玩过的游戏列表,包括数量 每个用户参与的游戏数量。

编辑

我尝试了这个查询

Select User.name, User.age
  from User  
  inner join User_Game 
  on User.id=User_Game.userid;

但是不确定如何添加计数

最佳答案

SELECT 
    userid, 
    GROUP_CONCAT(game_id) as game_list,
    COUNT(*) as total_games
FROM 
    USER_GAME 
GROUP BY 
    userid;

关于mysql - SQL中查询多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27538286/

相关文章:

mysql-proxy 结果字段操作

Mysql:计数、分组但返回所有结果

mysql - 在没有 native 查询的情况下在 JPA 中更新

sql - mysql 行到列,文本类型

MySQL - 按一个字段排序直到结果为空然后按另一个字段排序

php - 选择评论最多的帖子以及子帖子和父帖子

mysql - 组合查询

mysql - 具有多个标志的表

php - mysql 两个具有相同结构的表 - 想要通过联合获得一个公共(public)字段

php - 从多个表获取信息到一个 div(HTML、PHP 和 MySQL)