php - sql从表中选择然后在一条语句中与其他表进行比较

标签 php mysql sql-server

我必须将表放在一个数据库中。

  1. 用户
  2. user_activate

我必须在 php 中设置变量

  1. $username = foo;
  2. $key = jas823k123ksd34324;

现在我想从表 users 中选择属性 user_id 其中 user_username == $username

我用这条语句来做

$sql = "SELECT user_id FROM users WHERE user_username = '$username'";
$result = mysqli_query($db, $sql);
while($row = mysqli_fetch_assoc($result)){
    $user_id = $row['user_id'];
}

现在我想从表 user_activate 中选择属性 user_activate_key 其中 user_activate_key == $key;

为此我使用了这个语句:

$sql2 = "SELECT user_activate_key FROM user_activate WHERE user_activate_key = '$key'";
$result2 = mysqli_query($db, $sql2);
while($row = mysqli_fetch_assoc($result)){
    $user_key = row['user_activate_key'];
}

我可以在一个语句中做两个语句吗?

最佳答案

如您所写,两个单独的查询是执行此操作的正确方法。但我怀疑 usersuser_activate 之间存在某种关系,这可能使您的要求变得有意义。假设 user_activate_key 绑定(bind)到特定的 user_id,您可以执行如下操作:

select users.user_id, ua.user_activate_key
from users u
left join user_activate ua
    on u.user_id = ua.user_id
    and ua.user_activate_key = '$key'
where u.username = '$username'

LEFT JOIN 意味着即使没有匹配的 user_activate_key 记录也会显示用户。

关于php - sql从表中选择然后在一条语句中与其他表进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30671044/

相关文章:

php - 将 mysql 查询提取到 JSON

来自 2 个不同表的值出现的 Mysql 百分比

sql-server - SQL Server 逆透视两列

PHP 登录保持登录状态( session )

php - 使用 html2fpdf 时不显示图像

php - Mysql用PHP生成报告(DateTime数据类型)

sql-server - 有人可以转换代码以便它使用 EXEC @sql 而不是 EXEC sp_executesql 吗?

php - 自定义类型自动递增 id codeigniter

php - 使用索引改进 MySQL 表

sql - 在ORDER BY中使用SQL串联