如何使用codeigniter join功能从同一个表中获取两个id数据

时间:2018-01-27 05:57:36

标签: php mysql codeigniter join

我有表格职位,我需要从同一个表格用户<获取 jobs.user_iduser jobs.adminId /强>

我尝试此代码时只输出一个用户数据。

$this->db->from('jobs');
$this->db->join('user', 'user.iduser = jobs.user_iduser', 'left');
$this->db->join('user', 'user.iduser = jobs.adminId', 'left');

然后我尝试这样只输出一个用户数据。

$this->db->from('jobs');
$this->db->join('user', 'user.iduser = jobs.user_iduser', 'left');
$this->db->join('user as admin', 'admin.iduser = jobs.adminId', 'left');

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:2)

你可以试试这个。

$this->db->select('u.iduser as uiduser, ua.iduser as uaiduser and so  on');
 $this->db->from('jobs');
 $this->db->join('user u', 'u.iduser = jobs.user_iduser', 'left');
 $this->db->join ('user ua', 'ua.iduser = jobs.adminId', 'left');

在您的情况下,因为加入第一个联接的用户正被第二个联接替换。所以你需要尝试对表进行别名。

答案 1 :(得分:0)

试试这个:

$this->db->from('user');
$this->db->join('jobs', 'user.iduser = jobs.user_iduser', 'left');
$this->db->join('jobs', 'user.iduser = jobs.adminId', 'left');

我不完全知道表中的数据,但SQL中的left join表示:

  

从表A (上例中的用户)中选择所有记录,   以及来自表B (上例中的作业)的记录   满足连接条件(如果有的话)。的 Ref

所以,既然你说只返回了一个用户数据, jobs 是左表,我假设表 jobs 仅包含一个用户数据。如果你不跟我来,请告诉我。