0

我正在为我的游戏服务器开发一些东西并制作自定义网站禁令。

我有一个禁止表(禁止时间、原因、禁止玩家、禁止管理员等) 禁止玩家和禁止管理员字段都使用存储在另一个表中的玩家 ID。

我知道如何加入表格,但我不知道如何区分被禁止的玩家和管理员,表格基本上是这样的:

信息表:

some info field| more info | more info| player_id | creator_id

info info      | info info | info info|         1 |          2
info info      | info info | info info|         3 |          2
info info      | info info | info info|         5 |          4

球员表:

id  | name

1   | john
2   | steve
3   | sally
4   | bob
5   | jack

玩家 id 是被封禁的玩家,创建者是管理员,所有名称,无论是管理员还是玩家,都存储在玩家表中。我想要的是有一个页面显示被禁止的玩家、被禁止的原因、禁止管理员和时间

4

3 回答 3

1

您可以尝试:

SELECT
  info1,
  info2,
  p1.name AS player_name,
  p2.name AS admin_name
FROM more_infos mi
JOIN players p1 ON p1.id = mi.player_id
JOIN players p2 ON p2.id = mi.creator_id;

请参阅带有演示的Sql Fiddle 。

于 2012-09-14T16:22:04.893 回答
1

您需要加入玩家表两次 - 一次用于被禁止的用户(玩家),一次用于禁止的创建者(管理员),如下所示:

SELECT info.*, player.name, admin.name
FROM info
JOIN players player ON player.id = info.player_id
JOIN players admin ON admin.id = info.creator_id
于 2012-09-14T16:28:18.430 回答
0
SELECT j1.name banned_player, j2.name admin
FROM info_table it
JOIN players j1 ON j1.id = it.player_id
JOIN players j2 ON j2.id = it.creator_id

试一试。

于 2012-09-14T16:28:38.057 回答