У меня есть таблица базы данных в mysql
, в которой хранятся такие типы, как "температура", "oxygen_saturation", "heart_rate", "systolic_pressure", "diastolic_pressure".
Однако для данного checkup_id некоторые типы могут не сохраняться. Те, кого я хочу показать им как N / A.
Моя таблица выглядит следующим образом:
CREATE TABLE `exam` (
`id` int NOT NULL AUTO_INCREMENT,
`checkup_id` int NOT NULL,
`type` varchar(100) NOT NULL,
`result` longtext NOT NULL,
`combined_exam_id` int NOT NULL DEFAULT '-1',
`status` tinyint NOT NULL DEFAULT '1',
`version_id` int NOT NULL,
PRIMARY KEY (`id`,`version_id`),
UNIQUE KEY `exam_id` (`id`,`version_id`) /*!80000 INVISIBLE */,
KEY `checkup_idx` (`checkup_id`) /*!80000 INVISIBLE */,
KEY `version_id_fk_exam_idx` (`version_id`),
CONSTRAINT `exam_ibfk_1` FOREIGN KEY (`checkup_id`) REFERENCES `endorse_checkup` (`id`),
CONSTRAINT `version_id_fk_exam` FOREIGN KEY (`version_id`) REFERENCES `ps_versioning` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=65 DEFAULT CHARSET=utf8;
У меня есть следующий оператор выбора:
SELECT end_up.id as checkup_id,
end_e.type,
end_e.result,
FROM endorse_exam as end_e
left JOIN endorse_checkup as end_up on end_up.id = end_e.checkup_id
left JOIN ps_versioning as v ON v.id = end_e.version_id
left JOIN u_users as u ON u.user_id = v.user_id
WHERE end_up.patient_id = 50 AND v.id <= (SELECT IF(164 > -1, 164, max(v.id))) and checkup_id = 25;
Примечание: я поставил 164 значение вручную, но на самом деле оно приходит через API.
Используя приведенный выше код SQL, я получаю результат, подобный
Однако я хочу создать запрос для получения информации, как: