简体   繁体   中英

CodeIgniter mySQL 2 table LEFT OUTER JOIN

everyone.

I'm using CodeIgniter, and I'm not getting results for this query:

    $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;
    }

The 'users' table will always have results, but sometimes the user won't have a row in the 'show_guides' table. When the 'show_guides' table doesn't have results, the query doesn't return results from the 'users' table.

$row doesn't exist when 'show_guides' produces no results. I only get results when both tables have data with the matching users.user_id .

Any suggestions?

Thanks!

EDIT To avoid any confusion, this query gives me the results I need, but I want to use the CodeIgniter db objects.

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

This gives results even if show_guides is empty.

你想把你的'left outer'放在join()函数中,而不是where()

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM