这是编写此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
答案 0 :(得分:4)
您可以这样编写连接查询。
$this->db->select('*')->from('members')->join('membership', 'membership.id=members.id')->where($where)->get();
在$where
数组中,您需要具有列名的表名,否则如果两个表具有相同的列,它可能无效。
答案 1 :(得分:0)
你是如此亲密。
我用你的例子来构造我自己的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_name
应更改为简单的字符串,'members'