如何在MySQL中使用外键查询?

Jos*_*ain 14 php mysql mysqli foreign-keys

现在我有一个包含两个表的小型数据库,如下所示:

    users table
    ====================
    id  name   status_id
    1   Bobby  3
    2   James  2
Run Code Online (Sandbox Code Playgroud)

    statuses table
    =============
    id  value
    1   Waiting
    2   Approved
    3   Other
Run Code Online (Sandbox Code Playgroud)

status_id被设置为状态表中对id的外键约束.我的查询看起来像这样:

SELECT *
FROM `users`
WHERE `status_id` = 2";
Run Code Online (Sandbox Code Playgroud)

当我显示$row['status_id']它输出2但我希望它显示为Approved相反,什么是最好的方法来实现这一点?

Clo*_*eto 23

SELECT u.*, s.*
FROM users u
    inner join statuses s on u.status_id = s.id
WHERE u.status_id = 2
Run Code Online (Sandbox Code Playgroud)


Ibe*_*erê 6

你需要的是这个

SELECT *
FROM `users`
JOIN statuses ON statuses.id = users.status_id
WHERE `status_id` = 2";
Run Code Online (Sandbox Code Playgroud)

然后你可以参考

$row['value'];
Run Code Online (Sandbox Code Playgroud)