Estoy construyendo una base de datos para mi trabajo y estoy teniendo problemas para entender cómo crear esta consulta.mysql left join with multiple columns
las tablas correspondientes a mi problema son:
trabajo
Surgical_Planning - tiene trabajo como clave externa, existe para algunos puestos de trabajo, lo hace no para otros
Medical_Model - tiene trabajo como clave externa , relación 1 a 1 con el trabajo
Esta es una consulta de trabajo donde no tengo ninguna información sobre la planificación quirúrgica
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
Creo que quiero hacer una combinación de la izquierda para que se muestren todas las tareas en orden, con toda la información en la consulta anterior, pero luego cuando hay una Planificación_survical para un trabajo # Quiero que haya una columna para eso también. Aquí está mi intento que no está funcionando
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'
puedo conseguir esta izquierda básica join funcione de la manera que quiero, pero si quiero añadir más columnas como la de arriba no funciona.
SELECT job, planning_id
FROM job
LEFT JOIN Surgical_Planning ON job = Surgical_Planning.job_job
¿Podría usarse una subconsulta también? Puedo resolver estas consultas más básicas, pero realmente tengo problemas con estas combinaciones más complejas y subconsultas. cualquier consejo es apreciado
EDITAR --- mesa de trabajo esquema
- Tabla mmrl
. job
DROP TABLE IF EXISTS mmrl
. job
;
CREAR TABLA SI NO EXISTE mmrl
.job
(
job
INT (11) AUTO_INCREMENT NOT NULL,
type
VARCHAR (45) NULL,
status
VARCHAR (45) NULL NULL DEFAULT,
timestamp
TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP EN ACTUALIZACIÓN CURRENT_TIMESTAMP,
PRIMARY KEY (job
))
MOTOR = InnoDB
DEFAULT CHARACTER SET = latin1;