Php从多个表中获取数据
我在数据库中搜索了多个表,并没有得到正确的答案。这是我的密码Php从多个表中获取数据,php,mysql,database,codeigniter,Php,Mysql,Database,Codeigniter,我在数据库中搜索了多个表,并没有得到正确的答案。这是我的密码 $this->db->select('*'); $this->db->from('users'); $this->db->join('personal_data','personal_data.userid=users.userid','left'); $this->db->join('employed','employed.userid=users.userid','left'); $
$this->db->select('*');
$this->db->from('users');
$this->db->join('personal_data','personal_data.userid=users.userid','left');
$this->db->join('employed','employed.userid=users.userid','left');
$this->db->join('job_seeker','job_seeker.userid=users.userid','left');
$this->db->join('student','student.userid=users.userid','left');
$query=$this->db->get();
return $query->result();
这是显示代码
$query=$this->search_people->find_advanced();
foreach ($query as $row) {
echo $row->userid;
}
我认为问题出在查询中,因为输出结果不符合预期。
请帮忙
更新:
我有五张桌子
1.1用户。它将userid作为主键,并具有fname和lname。
2.个人资料。它将userid作为外键。此表包含表用户的所有用户ID,并包含国家信息以及用户是受雇的、求职者还是学生。
3.就业。此表将userid作为外键。但是所有用户的ID都不在此表中。它包含公司等信息。
4.求职者。此表还将userid作为外键。所有使用的ID都不在求职者中。它有以前工作的时间段和经验。等
5.学生。此表还将userid作为外键。所有在Employee或job_seeker中的ID都不是在student中。它有学校/大学、学位和预期完成日期的信息
现在我想将所有这些信息合并到一个表中,以便在控制器中使用它
我目前有5个用户。此查询仅返回学生表的id
但我期待所有用户的id
我希望这能消除混淆。请调试查询以了解发生了什么。 您可以使用:
$this->db->last_query()代码>用于调试。
希望这能对您有所帮助。输出结果与预期不符。
--好吧,我们怎么知道预期结果是什么?这里有太多无法解释的东西。首先,如果问题在查询中,那么查询是什么?我看到db中使用的函数,但我不知道它们是做什么的。您可以通过输出从db对象生成的查询字符串来进行故障排除。另外,您得到的输出结果是什么?正如Amal所说,您应该得到什么?您正在构建一个多分支联接结构:用户单独联接到4个单独的表。这通常不是一个好主意。连接应该是单个线性路径,例如a->b->c->d
,而不是a->b,a->c,a->d
,我有数据库。它有五张桌子。我想得到所有这些表中的所有数据。我正在使用userid来组合数据。userid在users表中是唯一的,在其他表中是外键。我想显示这些表中的所有数据。@SSMA在这里发布生成的SQL查询(您应该在$this->db->get();
之后获得),在这里发布您现在获得的结果,并在这里发布预期结果。谢谢