【问题标题】:MySQL inner join 2 tables to match user number to user nameMySQL内部连接2个表以将用户号与用户名匹配
【发布时间】:2013-10-18 14:37:31
【问题描述】:

很抱歉,这可能已经回答了数百次,但我完全迷失在不同的场景之间。

我想要的很简单。我有 2 个表“赌注”和“用户”。

在“赌注”表中,我输入了用户 ID 而不是用户名。在“users”表中,UserName 与 UserID 相关联。

我希望能够从“bets”表中读取数据并显示 UserName 而不是 UserID,因此我需要某种代码来匹配“bets”表中包含的 UserID 并返回而是用户名。

我现在的 MySQL 查询:

$sql5="SELECT * FROM Bets, Users WHERE GameID = '$NGnumber' ORDER BY DrawOrder";
$result5 = mysql_query($sql5) or die(mysql_error());
while($rows5 = mysql_fetch_assoc($result5)){
...

我可以轻松地回显$rows5['UserID'],但我想要的是用户名(在用户表中)。我该怎么做?

谢谢!

【问题讨论】:

  • 您正在加入两个表,但尚未指定如何加入这些表,例如where bets.something = users.whatever.
  • 这就是我问的原因 ;) 以前从未使用过内部连接,我知道但不知道如何使用它!

标签: php mysql inner-join


【解决方案1】:

使用inner join:

SELECT * FROM Bets INNER JOIN Users ON Bets.userID = Users.userID WHERE GameID = '$NGnumber' ORDER BY DrawOrder

【讨论】:

  • 酷!那么我会使用这样的东西来显示用户名吗? echo $rows5['UserName'] ?
  • 刚刚试过,它确实适用于echo $rows5['Username']。谢谢! :)
【解决方案2】:

替换查询:

SELECT * FROM Bets b INNER JOIN Users u
ON b.GameID = u.GameID
WHERE GameID ='$NGnumber' ORDER BY DrawOrder"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-20
    相关资源
    最近更新 更多