[英]SELECT sql statement that retrieves one row from a table and many related rows from other table
[英]sql select from table then compare with other table in one statement
我必须在一个数据库中的表。
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'];
}
我可以在一个陈述中同时执行两个陈述吗?
如您所写,两个单独的查询是正确的方法。 但是我怀疑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
记录,也会向用户显示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.