#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');