【问题标题】:CodeIgniter DB get_where and joinCodeIgniter DB get_where 并加入
【发布时间】:2012-11-10 22:19:42
【问题描述】:

这是编写此 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

【问题讨论】:

    标签: php database codeigniter


    【解决方案1】:

    你可以这样写连接查询。

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

    $where 数组中,您需要表名和列名,否则如果两个表具有相同的列,则可能无法正常工作。

    【讨论】:

    • 你仍然可以链接->result()
    【解决方案2】:

    你很亲密。

    我使用您的示例构建了自己的 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'

    【讨论】:

      【解决方案3】:

      我以前很喜欢它的工作原理

      $where = array('registration_status_fk' => 2, 'ms.membership_type_id' => 4);
      $join = array('membership', 'membership.id=members.id');
      
      $query = $this->join('membership ms', 'ms.id = m.id')->get_where('member m', $where);
      

      【讨论】:

      • 这似乎是@TARKUS 答案的副本。
      猜你喜欢
      • 2023-03-05
      • 1970-01-01
      • 2016-10-22
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 2017-11-24
      • 1970-01-01
      • 2019-09-02
      相关资源
      最近更新 更多