私はWeb開発の学生ですが、MySQLステートメントで問題が発生しました。私はゲームコミュニティから、禁止されている人を確認できる小さなWebサイトを作成するように依頼されました。
私が使用するテーブルには、「アカウント」と「禁止」の2つがあります。アカウントのレイアウトはこんな感じです
account_id username (more columns)
---- ---- ----
1 hey ...
2 hdf ...
3 sdf ...
4 admin ...
'bans'のレイアウトは次のとおりです。
ban_id account_id bannedby_id (more columns)
---- ---- ---- ----
1 1 4 ...
2 3 4 ...
この場合、ID4の管理者がID1と3のアカウントを禁止しました。禁止された人の名前と、禁止した管理者の名前の両方を1つの結果に含めるクエリを作成します。
私は今、最初にこれを行うことによってこれを行います:
SELECT bans.*, accounts.username FROM bans, accounts WHERE accounts.account_id = bans.account_id
次に、すべての結果をループして、取得した結果から管理者名を選択します。
while($baninfo = mysql_fetch_assoc($sqlBans))
{
mysql_query("SELECT username FROM accounts WHERE account_id = '" . $baninfo['bannedby_id'] . "'");
}
これはうまくいきましたが、これが正しい方法ではないと思います。そのようなクエリを実行できるMySQL関数が必要だと思いますが、Googleで検索したところ、見つかりませんでした。
明確にするために、クエリから結果を取得する方法は次のとおりです。
ban_id account_id account_username bannedby_id admin_username (other columns from Bans table)
---- ---- ---- ---- ---- ----
1 1 hey 4 admin ...
2 3 sdf 4 admin ...
これが非常に愚かな質問である場合は申し訳ありませんが、私はそれを解決することができます。皆さんが私のための解決策を持っていることを願っています。私は小さな問題に遭遇し、それは常に素晴らしい答えを持っているので、私はこのウェブサイトを頻繁に使用しています。
よろしく、マーク