我想用一个查询连接两个表

时间:2016-09-24 15:06:00

标签: php mysql

我想加入student_image表和student_details表格

image_id = student_id

但我卡在这里,查询给出了学生的详细信息,但现在我想添加学生形象与学生一起显示

以下是我的查询

$query = $this->db->get_where('student_detail',array('reg_no'=>$reg_no))->result_array();

2 个答案:

答案 0 :(得分:0)

我自己,也许其他人完全不知道你正在使用的db类是什么,所以我们无法帮助你解决这个问题。

这样的查询非常基础。简单查询看起来有点像这样:

SELECT *
  FROM student_details, student_image
  WHERE student_details.studentID = student_image.studentID

就是这样。现在你必须将它转换为使用你的db类...

我建议您在开始使用特殊的预制类之前学习基本的mysql查询。当你不知道自己想做什么时,它们会使事情变得复杂得多。

- 只有在两个表中实际存在该行时,上述查询才能获取学生详细信息。 如果你想要它回来,即使它不存在,你可以使用LEFT JOIN,如下所示:

SELECT *
  FROM student_details
  LEFT JOIN student_image ON student_details.ID = student_image.ID
  WHERE student_details.ID = 'myStudentID'

上述查询将检索学生的结果。

答案 1 :(得分:0)

您使用的是CodeIgniter吗?

如果您想显示student_image,也可以这样做:

$this->db->select('*');
$this->db->from('student_image a');
$this->db->join('student_details  b', 'a.image_id=b.student_detail_id','inner');
$this->db->where('b.student_detail',$reg_no);
return $this->db->get();

或者你可以这样做:

$query = "select * from student_image as a join student_details as b on a.image_id=b.student_detail_id where b.student_detail=?"
return $this->db->query($query ,array($reg_no));

我希望这能解决你的问题