2016-10-20 28 views
0

我試圖從兩個MySQl表中獲取數據時遇到了麻煩。 在第一張表中我存儲了圖像的文件名;在第二張表中我存儲了關於每個圖像的信息; info有兩種語言,en和it。當然,第一張表中的所有圖像都沒有第二張中的信息。 我試圖讓圖像在下列方式選定語言的信息:現在Codeigniter查詢生成器類中的Where子句

$this->db->select (' 
      tbl_images.image, 
      tbl_infos.info 
      '); 

$this->db->from('tbl_images'); 
$this->db->join('tbl_infos', 'tbl_images.id = tbl_infos.id', 'left'); 
$this->db->where('tbl_images.id', $id); 
$this->db->where('tbl_infos.lang', 'en'); 

...如果tbl_infos表有文本,該查詢返回正確的數據,但如果沒有信息存儲我由於沒有檢索到圖像而出現錯誤;如果我刪除lang子句,我會得到iamge,如果沒有信息存儲...但我得到的圖像信息兩次!

我越來越瘋狂,完全停留在這......我該如何解決這個問題? 非常感謝

回答

0

試試這個

$這個 - > DB->加入( 'tbl_infos', 'tbl_images.id = tbl_infos.id');

0

愚蠢的我......我修正了在同一JOIN行中寫入第二個條件。 因此,以下連接:

$this->db->join('tbl_infos', 'tbl_images.id = tbl_infos.id', 'left'); 

變爲:

$this->db->join('tbl_infos', 'tbl_images.id = tbl_infos.id AND tbl_infos.lang = "en"', 'left');