Desde appointmnent_id es la clave principal de Appointment , esta tabla tiene un 1:N relación con las 6 tablas.
Este es el caso donde unirse a estas 6 tablas producirá múltiples filas con datos duplicados , es como un Cartesian Product . Por ejemplo, si (solo para un id=46 ), hay:
- 3 filas para
PatientInvestigation - 6 filas para
PatientTreatmentMedicine - 4 filas para
PatientFindings - 2 filas para
PatientDiagnosis - 2 filas para
PatientCC - 5 filas para
PatientAdvice
obtendrás 3x6x4x2x2x5 =1440 filas en el conjunto de resultados, mientras que solo necesita 3+6+4+2+2+5 (+1) =23 filas Eso es 60 veces más filas (y con muchas más columnas) de las necesarias.
Es mejor si haces 6 consultas separadas con un JOIN a una (de las 6) tablas en cada consulta (y una consulta más para obtener los datos de la tabla base Appointment ). Y combina los resultados de las 6 consultas en el código de la aplicación . Ejemplo para la consulta base y la consulta para unir a la primera tabla:
Mesa base :
SELECT
a.appointment_id,
a.patient_id
FROM
Appointment AS a
WHERE
a.appointment_id = 46
Unirse-1 a Investigación de Pacientes :
SELECT
pi.investigation_name,
pi.investigation_id
FROM
Appointment AS a
JOIN
PatientInvestigation AS pi
ON pi.appointment_id = a.appointment_id
WHERE
a.appointment_id = 46