Я создаю базу данных для своей работы, и мне трудно понять, как создать этот запрос.
Таблицы, относящиеся к моей проблеме:
job
Surgical_Planning - имеет работу в качестве внешнего ключа, существует для некоторых работ, не для других
Medical_Model - имеет работу в качестве внешнего ключа, отношение 1 к 1 с работой
Эторабочий запрос, где у меня нет никакой информации о хирургическом планировании
SELECT
job,
physician_idphysician as Physician,
patient_idpatient as Patient,
status,
DATE_FORMAT(scan_date, '%M %e, %Y, %l:%i%p') as Scan_Date,
DATE_FORMAT(timestamp, '%M %e, %Y, %l:%i%p') as Recieved,
DATE_FORMAT(date_required, '%M %e, %Y, %l:%i%p') as Date_Required
FROM
job, patient_has_physician as phys, Scan, Medical_Model as med
WHERE
Scan.job_job = job AND phys.job_job = job
AND med.job_job = job AND job.type = 'medical
Я думаю, что я хочу сделать левое соединение, чтобы оно отображало каждую работу по порядку, со всей информацией в запросе выше, но тогда, когда есть Surgical_Planning для работы # Я хочу, чтобы был столбец для этого также.Вот моя попытка, которая не работает
SELECT
job,
physician_idphysician as Physician,
patient_idpatient as Patient,
status,
DATE_FORMAT(scan_date, '%M %e, %Y, %l:%i%p') as Scan_Date,
DATE_FORMAT(timestamp, '%M %e, %Y, %l:%i%p') as Recieved,
DATE_FORMAT(date_required, '%M %e, %Y, %l:%i%p') as Date_Required
FROM
job, patient_has_physician as phys, Scan, Medical_Model as med
LEFT JOIN Surgical_Planning ON job.job = Surgical_Planning.job_job
AND Scan.job_job = job AND phys.job_job = job
AND med.job_job = job AND job.type = 'medical'
Я могу заставить это базовое левое соединение работать так, как я хочу, но если я хочу добавить больше столбцов, как указано выше, оно не работает.
SELECT job, planning_id
FROM job
LEFT JOIN Surgical_Planning ON job = Surgical_Planning.job_job
можно ли использовать подзапрос?Я могу выяснить эти более простые запросы, но у меня действительно есть проблемы с этими более сложными запросами соединения и подзапроса.приветствуется любой совет.
РЕДАКТИРОВАТЬ --- Схема таблицы заданий
- Таблица mmrl
. job
DROP TABLE ЕСЛИ СУЩЕСТВУЕТmmrl
. job
;
СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ mmrl
. job
(
job
INT (11) NOT NULL AUTO_INCREMENT,
type
VARCHAR (45) NULL,
status
VARCHAR (45) NULL DEFAULT NULL,
timestamp
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP при обновлении CURRENT_TIMESTAMP,
*49ПЕРВИЧНЫЙ КЛЮЧ (
job
))
ДВИГАТЕЛЬ = InnoDB
УСТАНОВКА ПО УМОЛЧАНИЮ ПО УМОЛЧАНИЮ = latin1;