Cha*_*lie 4 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;
}
Run Code Online (Sandbox Code Playgroud)
'users'表总是有结果,但有时用户在'show_guides'表中没有行.当'show_guides'表没有结果时,查询不会返回'users'表中的结果.
当'show_guides'没有产生结果时,$ row不存在.当两个表都包含匹配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;
Run Code Online (Sandbox Code Playgroud)
即使show_guides为空,这也会产生结果.
dis*_*ake 18
你想把你的'left outer'放在join()函数中,而不是where()
$this->db->join('show_guides', 'show_guides.user_id = users.user_id', 'left outer');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20462 次 |
| 最近记录: |