我是 Web 开发的学生,我遇到了 MySQL 语句的问题。一个游戏社区要求我创建某种小网站,在那里他们可以看到他们禁止了哪些人。
我使用了 2 个表,“帐户”和“禁令”。账户的布局有点像这样
account_id username (more columns)
---- ---- ----
1 hey ...
2 hdf ...
3 sdf ...
4 admin ...
“禁令”的布局是:
ban_id account_id bannedby_id (more columns)
---- ---- ---- ----
1 1 4 ...
2 3 4 ...
在这种情况下,ID 为 4 的管理员已禁止 ID 为 1 和 3 的帐户。我想创建一个查询,其中我同时拥有被禁止人员的姓名和在单个结果中禁止他的管理员的姓名。
我现在首先这样做:
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 ...
如果这是一个非常愚蠢的问题,我很抱歉,但我可以解决它。我希望你们能给我一个解决方案。我经常使用这个网站,因为我遇到了一些小问题,而且它总是有很好的答案。
问候,马克