加入codeigniter查询中的多个表

问题描述:

我想要在codeigniter中运行查询;加入codeigniter查询中的多个表

查询是

"SELECT * FROM td_album,td_image 
    WHERE td_album.album_id=td_image.album_id 
      AND td_album.album_id='$id' 
      AND (td_image.image_name='$name' OR td_image.image_id='$image_id');" 

,当我笨查询运行我为写:

$query = $this->db->select('*') 
         ->from('td_image') 
         ->join('td_album', 'td_album.album_id = td_image.album_id') 
         ->like('td_image.image_id', $image_id) 
         ->or_like('td_image.image_name', $image_name) 
         ->and_like('td_album.album_id',$id) 
         ->get('', $this->limit, $this->offset); 

,但不知道为什么,这个心不是工作了

请需要帮助的这...

EDIT 

其投掷此错误

Fatal error: Call to undefined method CI_DB_mysql_driver::and_like() in /home/koushani/public_html/jmssimplex.com/application/admin/models/gallery_model.php on line 189 

需要的具体答案。如下

$this->db->select('*') 
       ->from('td_image,td_album') 
       ->where('td_album.album_id', 'td_image.album_id') 
       ->where('td_album.album_id', $id) 
       ->where('td_image.image_name='.$name.' OR td_image.image_id='.$image_id); 
$query = $this->db->get(); 
+0

可能想要具体一点。不工作不说。它是否返回结果,错误的结果,你期望得到什么结果? – 2013-02-08 13:02:29

+0

也许可以考虑使用'$ this-> db-> query($ query)'来处理更复杂的查询,如发布的查询。 – Mudshark 2013-02-08 13:08:33

你应该写这样因为and_like不是活动记录function.so你可以在查询中使用多个像

试试这个

$query = $this->db->select('*') 
         ->from('td_image') 
         ->join('td_album', 'td_album.album_id = td_image.album_id') 
         ->like('td_image.image_id', $image_id) 
         ->or_like('td_image.image_name', $image_name) 
         ->like('td_album.album_id',$id) 
         ->get('', $this->limit, $this->offset); 

另一种方式是

$array = array('td_image.image_id' => $image_id, 'td_album.album_id' => $id); 
$this->db->select('*'); 
$this->db->from('td_image'); 
$this->db->join('td_album', 'td_album.album_id = td_image.album_id'); 
$this->db->like($array); 
$this->db->or_like('td_image.image_name', $image_name); 
$this->db->limit($this->limit, $this->offset); 
$query = $this->db->get(); 

请张贴任何假设的答案

+0

哥们,这个查询结果显示所有相册的图像,而我只需要显示1 .. ur查询相当于...选择*从td_album,td_image 哪里td_album.album_id = td_image.album_id AND td_album.album_id LIKE'$ id' OR td_image.image_name LIKE'$ name'AND td_image.image_id LIKE'$ image_id'; – Saswat 2013-02-09 03:26:17

+0

老兄,我只是试图解决你的致命错误:调用未定义的方法CI_DB_mysql_driver :: and_like().... – 2013-02-11 06:18:19