MySQLi匹配来自不同表的ID

时间:2013-10-04 15:59:00

标签: php mysql sql mysqli

基本上,我正在制作一张桌子,输出被禁止的人。到目前为止,我已经完成了MySQLi所做的一切,而不是显示它显示玩家ID的实际名称。我遇到了麻烦,因为玩家ID存储在一个单独的表中。

http://i.stack.imgur.com/sy6G9.png

这张图是主表的结构,请注意player_id和creator_id?我要做的是匹配ID,并从下面显示的另一个表中相应地用“name”行替换该号码 http://i.stack.imgur.com/Lm3Fg.png

如果你能帮助我,我会非常感激。

2 个答案:

答案 0 :(得分:2)

SELECT * FROM TableA, TableB
INNER JOIN TableB
ON TableA.id = TableB.player_id

答案 1 :(得分:1)

此查询只会显示被禁玩家的名字:

SELECT name FROM banned_table INNER JOIN name_table ON player_id=name_table.id 

当然,您需要将banned_tablename_table更改为数据库中的实际表名。

更新: 从下面的评论中,这是OP的解决方案

SELECT b.*,n.name as player, n2.name as admin FROM banhammer_bans b 
JOIN name_table n ON b.player_id=n.id 
JOIN name_table n2 ON b.creator_id=n2.id
ORDER BY b.created_at DESC

并更改显示代码:

echo'<td>' . $row['player_id'] . '</td>';
echo'<td>' . $row['creator_id'] . '</td>';

要成为:

echo'<td>' . $row['player'] . '</td>';
echo'<td>' . $row['admin'] . '</td>';