В моем приложении у меня есть три таблицы: бронирование, пациент и sub_unit, мне нужно взять patient_id из таблицы резервирования и запросите таблицу пациентов для данных пациента, одновременно. Мне нужно взять sub_unit_id из таблицы резервирования и запросить имя sub_unit из таблицы sub_unit.. Мне нужно поместить все эти данные в один массив в последовательности, подобной patient_id, sub_unit_name, patient_name, адрес и передать его в класс таблицы Codeigniter для рисования таблицы.
Как я могу запросить три таблицы в одно и то же время, чтобы запросить эти данные? вы можете помочь мне?
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
Использование синтаксиса воспламенителя кода можно сделать следующим образом:
$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;
Синтаксис 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 соединение по умолчанию - это Inner Join, который, я думаю, является тем, что вы ищете. Вы также можете посмотреть в Outer Joins, которые также очень полезны.
Это работало ребята, я сделал это так, используя активные записи 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;
}
thanx для всей вашей поддержки!
WHERE
для каждого соединения, а также гораздо проще забыть выражение соединения.