[英]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.