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フィドルを参照してください。

于 2012-09-14T16:22:04.893 に答える
1

次のように、プレーヤー テーブルに 2 回参加する必要があります。

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 に答える