2012-11-10 34 views
1

這是編寫此codeigniter查詢的最佳方式嗎?CodeIgniter DB get_where並加入

$where = array('registration_status_fk' => 2, 'membership.membership_type_id' => 4); 
$join = array('membership', 'membership.id=members.id'); 

$query = $this->join($join[0], $join[1])->get_where($this->tbl_name, $where); 

還是有更好的方法來完成我在做什麼?

這是錯誤我得到

Error Number: 1054 

Unknown column 'membership.membership_type_id' in 'where clause' 

SELECT * FROM (`member`) WHERE `registration_status_fk` = 2 AND `membership`.`membership_type_id` = 4 

Filename: C:\xampp\htdocs\OAWA\system\database\DB_driver.php 

Line Number: 330 

回答

4

你可以寫連接查詢這個樣子。

$this->db->select('*')->from('members')->join('membership', 'membership.id=members.id')->where($where)->get(); 

$where陣列需要表名與列名,或者如果兩個表具有相同的列可能無法正常工作。

+1

並且您仍然可以鏈接' - > result()' – noinput

0

你太親近了。

我用你的例子來構建自己的加入/ get_where聲明,這是產生正確的結果:

$where = array('as_id' => $id); 
    $join = array('as_types', 'as_types.as_type_id=assets.as_type'); 
    $query = $this->db->join($join[0], $join[1])->get_where('assets', $where); 

重新寫你的查詢是這樣的:

$where = array('registration_status_fk' => 2, 'membership.membership_type_id' => 4); 
$join = array('membership', 'membership.id=members.id'); 
$query = $this->join($join[0], $join[1])->get_where('members', $where); 

通知唯一的變化是在第3行中:$this->tbl_name應改爲簡單字符串,'members'