我必须将表放在一个数据库中。
用户
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'];
}
我可以在一个语句中做两个语句吗?
最佳答案
如您所写,两个单独的查询是执行此操作的正确方法。但我怀疑 users
和 user_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/