繁体   English   中英

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

[英]I want to join two tables with a single query

我想将student_image表与student_details表加入其中

image_id = student_id

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

下面是我的查询

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

我自己,可能还有其他人完全不知道您使用的那个 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'

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

你在使用 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));

我希望这能解决你的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM