Как получить данные из трех таблиц с помощью оператора соединения в MySQL - PullRequest
0 голосов
/ 02 октября 2010

В моем приложении у меня есть три таблицы: резервирование , пациент и sub_unit , мне нужно взять Patient_id из таблицы бронирования и запросить таблица пациента для данных пациента , в то же время мне нужно взять sub_unit_id из таблицы резервирования и запросить имя sub_unit из таблицы sub_unit .. Мне нужно поместить все эти данные в один массив в последовательности, как Patient_id, sub_unit_name, Patient_Name, адрес и передать его в класс таблицы Codeigniter для рисования таблицы.

Как я могу запросить три таблицы одновременно, чтобы запросить эти данные? вы, ребята, можете мне помочь?

Ответы [ 4 ]

4 голосов
/ 02 октября 2010

Используя синтаксис воспламенителя кода, это можно сделать следующим образом -

$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;
2 голосов
/ 02 октября 2010
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 
2 голосов
/ 02 октября 2010

Синтаксис join очень прост в 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 объединение по умолчанию - Внутреннее объединение , которое, я думаю, именно то, что вы ищете. Вы также можете посмотреть Внешние соединения , которые также очень полезны.

0 голосов
/ 02 октября 2010

это сработало, ребята, я сделал это, используя активные записи 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;
}

спасибо за вашу поддержку!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...