簡體   English   中英

如何通過mysql中的join語句從三個表中獲取數據

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM