我必须在一个数据库中使用表。
users
user_activate
我需要php中的变量
$username = foo;
$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'];
}
我可以在一个声明中做两个陈述吗?
答案 0 :(得分:1)
正如您所写的那样,两个单独的查询是正确的方法。但我怀疑users
和user_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
记录,也会显示该用户。