CodeIgniter mySQL 2 таблица ВЛЕВО НАРУЖНОЕ - PullRequest
4 голосов
/ 10 ноября 2011

все.

Я использую 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 не дает результатов. Я получаю результаты только тогда, когда в обеих таблицах есть данные с совпадающим user.user_id.

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

Спасибо!

EDIT Чтобы избежать путаницы, этот запрос дает мне нужные результаты, но я хочу использовать объекты db 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 Ответ

18 голосов
/ 10 ноября 2011

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

$this->db->join('show_guides', 'show_guides.user_id = users.user_id', 'left outer');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...