2012-11-11 73 views
0
SELECT * 
FROM banhammer_bans 
INNER JOIN banhammer_players AS player 
    ON banhammer_bans.player_id = player.id 
INNER JOIN banhammer_players AS admin 
    ON banhammer_bans.creator_id = admin.id 
ORDER BY created_at DESC 

单独列名后,我得到三个id列,并从banhammer_players表中的两列name。我如何分开这些,以便我可以在我的PHP代码中使用它们?SQL:两个内连接

banhammer_players包含两列,idname。 banhammer_bans有两列(player_idcreator_id),它们都与banhammer_players表相匹配。

+1

在SELECT语句中阅读关于别名和使用表名称 –

回答

1

使用别名显式选择所有列。

SELECT banhammer_bans.id as bans_id, banhammer_players as players_id, ... 
FROM banhammer_bans 
INNER JOIN banhammer_players AS player 
    ON banhammer_bans.player_id = player.id 
INNER JOIN banhammer_players AS admin 
    ON banhammer_bans.creator_id = admin.id 
ORDER BY created_at DESC 
+0

谢谢,显然我觉得有点太累了,以至于我实际上已经拥有了播放器。*和admin。*别名。 – dataviruset

0

使用别名查询为:

SELECT bans.id, player.name AS player_name, admin.name AS admin_name 
    FROM banhammer_bans AS nans 
    INNER JOIN banhammer_players AS player 
    ON bans.player_id = player.id 
    INNER JOIN banhammer_players AS admin 
    ON bans.creator_id = admin.id 
    ORDER BY created_at DESC; 

在一个以上的使用模棱两可列的表的别名(相同的名字列在select属性你希望你可以添加尽可能多的表)。