我有表格职位,我需要从同一个表格用户<获取 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');
有没有办法实现这个目标?
答案 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
仅包含一个用户数据。如果你不跟我来,请告诉我。