[英]how to get data from three tables by a join statement in mysql
在我的应用我有三个表, 预约 , 病人和sub_unit,我需要从预订表patient_id和查询患者表患者数据 , 同时我需要从预约表sub_unit_id和查询从sub_unit名sub_unit表 ...我需要将所有这些数据按耐心id,sub_unit_name,patient_name,address之类的顺序放入一个数组中,并将其传递给Codeigniter表类以绘制表。
如何同时查询三个表以查询此数据? 你们可以帮我吗?
使用代码点火器语法,可以完成以下操作-
$this->db->select('r.patient_id, s.sub_unit_name, p.patient_name, p.address');
$this->db->from('reservation r');
$this->db->join('patient p', 'p.id = r.patient_id');
$this->db->join('sub_unit s', 's.id = r.sub_unit_id');
$query = $this->db->get();
You can check your formed query by -
echo $this->db->_compile_select();exit;
连接语法在SQL中非常简单。 您可能正在寻找这样的东西:
SELECT reservation.patient_id,
sub_unit.sub_unit_name,
patient.patient_name,
patient.address
FROM reservation
JOIN patient ON (patient.id = reservation.patient_id)
JOIN sub_unit ON (sub_unit.id = reservation.sub_unit_id);
在MySQL中,默认联接是Inner Join ,我想这就是您要寻找的。 您可能还希望研究也非常有用的外部联接 。
Select r.patient_id, s.sub_unit_name, p.patient_name, p.address
from reservation r, sub_unit s, patient p
where r.patient_id = p.patient_id and r.sub_unit_id = s.sub_unit_id
没错,我是这样使用Codeigniter活动记录来完成的,希望你们也可以使用它
function get_data(){
$sql = 'SELECT * FROM visit,patient,sub_unit WHERE visit.patient_patient_id = patient.patient_id AND visit.sub_unit_sub_unit_id = sub_unit.sub_unit_id';
$this->db->order_by("reference_number", "desc");
$query = $this->db->query($sql);
return $query;
}
感谢您的支持!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.