【发布时间】:2016-03-14 20:42:47
【问题描述】:
我遇到了一个 SQL 逻辑问题。 我有一个“游戏”表,其中包含一些数据,其中 player1_id 和 player2_id 是在跳棋比赛中相互玩的用户 ID:
每个游戏都以不同的环境开始,已经在另一个表中指定(由“game_id”列键控)。 假设每个人都在线,用户不能重玩同一个游戏。 如何只选择没有玩过我还没有玩过的游戏的用户来匹配我? AJAX 调用将匹配尚未玩过特定游戏的两个用户并让他们玩。 无论用户是 player1 还是 player2 ,他都不能重复游戏。 非常感谢。
表格:
game_match
+----+---------+------------+------------+
| id | game_id | player1_id | player2_id |
+----+---------+------------+------------+
| 1 | 1 | 16 | 17 |
| 2 | 1 | 18 | 23 |
| 3 | 1 | 19 | 21 |
| 4 | 1 | 20 | 22 |
| 5 | 2 | 20 | 17 |
| 6 | 2 | 16 | 18 |
| 7 | 2 | 19 | 23 |
| 8 | 1 | 25 | 15 |
+----+---------+------------+------------+
用户
+----+-----------+
| id | name |
+----+-----------+
| 17 | Donald |
| 18 | Margarida |
| 19 | Daisy |
| 20 | Mickey |
| 21 | Steve |
| 22 | Raul |
| 23 | Janis |
| 24 | Michael |
| 25 | Sergio |
| 26 | Bill |
| 27 | Alina |
| 28 | Alana |
| 29 | Harumi |
| 30 | Danielle |
| 31 | Lisa |
+----+-----------+
谢谢!
【问题讨论】:
-
为什么你有一个名为
games的表,其中game_id不是唯一的主键? -
已编辑。抱歉,表名错误。表“游戏”是带有游戏场景的表。
-
你能提供一些例子来说明你的意思吗?你的任务很难解析。