Php CodeIgniter DB获取_位置并加入

Php CodeIgniter DB获取_位置并加入,php,database,codeigniter,Php,Database,Codeigniter,这是编写codeigniter查询的最佳方法吗 $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,

这是编写codeigniter查询的最佳方法吗

$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

您可以这样编写联接查询

$this->db->select('*')->from('members')->join('membership', 'membership.id=members.id')->where($where)->get();
$where
数组中,您需要表名和列名,否则如果两个表都有相同的列,则可能无法工作。

您太接近了

我使用您的示例构造了自己的join/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\u name
应该更改为一个简单的字符串,
'members'

,您仍然可以链接
->result()