【发布时间】:2018-11-24 18:42:45
【问题描述】:
我有一个名为games 的 4 人游戏的下表。
+---------+---------+---------+---------+---------+
| game_id | player1 | player2 | player3 | player4 |
+---------+---------+---------+---------+---------+
| 1001 | john | dave | NULL | NULL |
| 1002 | dave | john | mike | tim |
| 1003 | mike | john | dave | NULL |
| 1004 | tim | dave | NULL | NULL |
+---------+---------+---------+---------+---------+
我希望能够回答两个问题:
- 谁参加的比赛最多? (戴夫)
- 哪对玩家一起玩的游戏最多? (约翰和戴夫)
对于#1,我尝试调整我在这里找到的答案:mySQL query to find the most repeated value 但它似乎只能回答单个专栏的问题。这意味着我可以知道谁是player1 最多的人,但不能知道谁像任何玩家一样参加了最多的比赛:
SELECT player1 p1, COUNT(*) p1 FROM games
GROUP BY p1
ORDER BY p1 DESC;
有没有办法将这些列连接在一起,或者我必须在应用程序代码中处理这个问题?
不知道从哪里开始 #2。我想知道我的表格结构是否应该将玩家合并到一个列中:
+----+---------+--------+
| id | game_id | player |
+----+---------+--------+
| 1 | 1001 | john |
| 2 | 1001 | dave |
| 3 | 1002 | john |
| 4 | 1002 | dave |
| 5 | 1002 | mike |
| 6 | 1002 | tim |
+----+---------+--------+
【问题讨论】:
标签: mysql