2016-10-20 4 views
0

У меня возникли проблемы с попыткой получить данные из двух таблиц MySQl. В первой таблице я сохранил имя файла изображения; во второй таблице я сохранял информацию о каждом изображении; info находятся на двух языках, en и нем. Конечно, не все изображения в первой таблице имеют информацию во второй. Я пытаюсь получить изображения в информации для выбранного языка следующим образом:Где предложение в Codeigniter Query Builder Класс

$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 имеет текст, возвратные запрос правильные данные, но если нет данных сохраняются I получить ошибку, поскольку никакие изображения не получены; если я удалю lang where clause, я получаю iamge, если информация не хранится ... но я получаю изображения с информацией дважды !!

Я схожу с ума и полностью застрял на этом ... как я могу это исправить? спасибо

ответ

0

попробовать это

$ this-> db-> присоединиться ('tbl_infos', 'tbl_images.id = tbl_infos.id');

0

Глупый я ... Я исправил запись второго условия в той же строке JOIN. Итак, следующие 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'); 
Смежные вопросы