如何在codeigniter中更改此mysql查询?
此查询有效:
/$query = $this->db->query("SELECT * FROM user_registration WHERE Ins_ID=(SELECT Ins_ID FROM login WHERE User_Name='$User_Name')");
我想将其更改为comment.thank you下的格式。
public function view($User_Name)
{
if($User_Name != NULL)
{
//$query = $this->db->query("SELECT * FROM user_registration WHERE Ins_ID=(SELECT Ins_ID FROM login WHERE User_Name='$User_Name')"); //edited
$Ins_ID=$this->db->query("SELECT Ins_ID FROM login WHERE User_Name='$User_Name'");
$this -> db -> select('*');
$this -> db -> from('user_registration');
$this -> db -> where('Ins_ID',$Ins_ID);
$query = $this -> db -> get();
return $query->row();
}
}
答案 0 :(得分:2)
您需要加入表格,不要使用子查询
$this->db->select('r.*');
$this->db->from('user_registration r');
$this->db->join('login l','r.Ins_ID=l.Ins_ID')
$this->db-> where('l.User_Name',$User_Name);
$query =$this->db->get();
答案 1 :(得分:0)
尝试:
$this->db->where("Ins_ID=(SELECT Ins_ID FROM login WHERE User_Name='$User_Name')");
$this->db->get('user_registration');
答案 2 :(得分:0)
http://ellislab.com/codeigniter/user-guide/database/active_record.html 使用活动记录如下
$this->db->where('Ins_ID',$Ins_ID)
->get('user_registration');
请注意,您可以链接调用(where(),select(),join()),这看起来更好,并保存几行代码。 如果您选择所有列,则无需使用$ this-> db-> select('user_registration。*');等等 您可以在 - > get()中传递表格,因此如果您不需要,也不需要使用 - > from()。