在JOIN子句之后指定WHERE子句 - 活动记录 - CodeIgniter

时间:2012-12-04 22:46:33

标签: sql codeigniter activerecord

我想问一下,是否可以在连接后指定where子句,以便将数据与用户输入相匹配。比方说,我有以下代码:

 $this->db->select('user.*,role.*')
  $this->db->from('user');
  $this->db->where('user.username', $username);
  $this->db->where('user.password', $password);
  $this->db->join('role','role.id = user.role_id')
  $result = $this->db->get();

我想查询表'role'中的匹配数据:

 $this->db->select('user.*,role.*')
  $this->db->from('user');
  $this->db->where('user.username', $username);
  $this->db->where('user.password', $password);
  $this->db->join('role','role.id = user.role_id')
  $this->db->where('role.speaker', $speaker); //want to know if this is correct
  $result = $this->db->get();

这可能吗?我可以在JOIN之后比较结果(使用WHERE)吗?这会产生与WHERE子句匹配的结果吗?

谢谢!

2 个答案:

答案 0 :(得分:4)

在调用->get()之前,CodeIgniter实际上不会构建查询。您可以按照您想要的顺序调用方法。

答案 1 :(得分:0)

    $this->db->select(array('tbl_board_type_details.id','tbl_board_type_details.price','tbl_bord_type.bord_type_name'));
    $this->db->from(array('tbl_board_type_details'));
    $this->db->join('tbl_bord_type','tbl_bord_type.id=tbl_board_type_details.board_type_id');
    $this->db->where('tbl_board_type_details.hotel_id', $id);
    $query = $this->db->get();
    $boardtype_result =  $query->result();
    $data['boardtype_result'] = $boardtype_result;

您可以尝试使用此代码。它工作得很好..