2017-04-25 45 views
1

我有2個表。如何使用特定條件加入代碼中的列

  • 管理員
  • 輪廓

admins表,有admin_id,我想用profile其中有一個領域identifier加入。讓我們假設admin_id =1000000。我想要像這樣加入。

$this->db->select('*')->from('admins')->join('profile', 'admin.id = "ABC".admins.admin_id."U"')->where('email', $username)->where('password', $password)->where('status', 1); 

admin_id 1000000 標識符是ABC1000000U

我如何加入基於這些這2個表?

回答

2

試試這個:

$this->db 
    ->select('*') 
    ->from('admins') 
    ->join('profile', 'CONCAT("ABC", admins.admin_id, "U") = profile.identifier') 
    ->where('email', $username) 
    ->where('password', $password) 
    ->where('status', 1); 
+1

工程就像一個魅力 –

1

如果使用JOIN然後兩個列必須有相同的datatype並且應該有它們之間的參考,根據您的需要的結果,你可以試試下面CI代碼,

// create where condition array 
$where = array('email'=>$username,'password'=> $password,'status'=>1); 
// if there is admin_id then add more conditions in it 
if(isset($admin_id) && $admin_id){ 
    $where['a.admin_id']=$admin_id; // from admins table 
    $where['p.identifier']='ABC'.$admin_id.'U'; // from profiles table 
} 
$this->db->select('*') 
    ->from('admins a,profile p') // join not required 
    ->where($where); // add where at a glance 
相關問題