我有两张表tbl_users(id,role_id,username)
,tbl_roles(id,role_name)
我必须通过从role_name中获取与role_name = user对应的id来更新role_id
中用户名的tbl_users
。
为此,我首先从表role_name="user"
中的tbl_roles
处获取role_id,然后在tbl_users中将role_id设置为username="username"
。
我的模特功能: - 我在这里做两个查询并询问是否可以在一个查询中完成。
function dropModerator($username) {
$this->db->select('role_id');
$this->db->where('role_name',"User");
$role_id = $this->db->get('tbl_roles');
foreach($role_id->result() as $value)
$role = $value->role_id;
$sql = "UPDATE tbl_users SET role_id='$role' WHERE username='$username'";
return $this->db->query($sql);
}
同样,我想这样做是因为,这使我的程序时间在运行时变慢,我想在单个查询中执行以便快速获得输出。
答案 0 :(得分:2)
您可以在一个查询中执行此操作:
UPDATE tbl_users
SET role_id = ( SELECT Role_ID
FROM tbl_Roles
WHERE Role_Name = 'user'
)
WHERE username = '$username'