我如何从2个不同的表中搜索数据?

时间:2014-05-13 06:06:10

标签: mysql search join

以下是我的代码。 模型。

function get_search_conv() 
    {   

          $match = $this->input->post('search');
          $this->db->like('TextDecoded',$match);
          $query = $this->db->get('inbox');
          return $query->result();

    }

它适用于一个表,但是如何在表'inbox2'中搜索textDecoded? 我尝试过工会,或加入,但仍然没有工作。有人可以帮帮我吗? 感谢

1 个答案:

答案 0 :(得分:0)

你可以这样做

$sql="select * from inbox in1, inbox2 in2 
          where in1.TextDecoded like '%".$match."%' 
            or in2.TextDecoded like '%".$match."%'";
    $query = $this->db->query($sql);
    return $query->result();

另一种可能的解决方案是

function get_search_conv() 
{   

      $match = $this->input->post('search');
      $this->db->like('TextDecoded',$match);
      $this->db->or_like('TextDecoded',$match);
      $this->db->from('inbox,inbox2');
      $query = $this->db->get();
      return $query->result();

}

这是你的另一个答案。避免使用Active Record执行此操作,因为您必须将DB_active_rec.php中的函数_compile_select()和_reset_select()的访问修饰符更改为public。这不是一个好主意

$sql = "SELECT TextDecoded FROM inbox where TextDecoded like '%".$match."%'
UNION 
SELECT TextDecoded FROM inbox2 where TextDecoded like '%".$match."%'"

$query = $this->db->query($sql);

return $query->result();