需要将两个字段中的用户ID与另一个表中的名称进行匹配

时间:2012-09-14 16:19:08

标签: php join matching names

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

我有禁止表(禁止时间,原因,禁止玩家,禁止管理员等)被禁止的玩家和禁止管理员字段都使用存储在另一个表中的玩家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是被禁止的玩家,创建者是管理员,管理员或玩家的所有名称都存储在玩家表中。我想要的是有一个页面,显示被禁止的玩家,禁令的原因,禁止管理员和时间

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

答案 2 :(得分: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

试一试。