繁体   English   中英

sql从表中选择,然后在一个语句中与其他表进行比较

[英]sql select from table then compare with other table in one statement

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

  1. users
  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绑定到特定的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记录,也会向用户显示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM