CodeIgniter MySQL 2 таблица ЛЕВОГО ВНЕШНЕГО СОЕДИНЕНИЯ

#php #mysql #codeigniter

#php #mysql #codeigniter

Вопрос:

все.

Я использую CodeIgniter, и я не получаю результатов для этого запроса:

     $this->load->database();

    $this->db->select('*');
    $this->db->from('users');
    $this->db->join('show_guides', 'show_guides.user_id = users.user_id');
    $this->db->where('users.user_id', $user_id['user_id'], 'left outer');

    $query = $this->db->get();
    foreach ($query->result_array() as $row) {
        $results = $row;
    }
  

В таблице ‘users’ всегда будут результаты, но иногда у пользователя не будет строки в таблице ‘show_guides’. Когда в таблице ‘show_guides’ нет результатов, запрос не возвращает результаты из таблицы ‘users’.

$row не существует, когда ‘show_guides’ не выдает результатов. Я получаю результаты только тогда, когда в обеих таблицах есть данные с соответствующим users.user_id .

Есть предложения?

Спасибо!

РЕДАКТИРОВАТЬ Чтобы избежать какой-либо путаницы, этот запрос дает мне нужные результаты, но я хочу использовать объекты базы данных CodeIgniter.

 SELECT u.*,s.* 
FROM users u
LEFT OUTER JOIN show_guides s ON u.user_id = s.user_id
WHERE u.user_id = 155;
  

Это дает результаты, даже если show_guides пуст.

Ответ №1:

Вы хотите поместить свой ‘left outer’ в функцию join(), а не в where()

 $this->db->join('show_guides', 'show_guides.user_id = users.user_id', 'left outer');