Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/07/2012, 04:30
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problemas con joins: la consulta me trae valores erroneos

Código MySQL:
Ver original
  1. SELECT c.codigo AS consulta,
  2.              c.fecha,
  3.              c.motivo,
  4.              c.descripcion,
  5.              p.codigo AS paciente,
  6.              p.cedula,
  7.              p.nombre,
  8.              p.apellido,
  9.              r.medicamento,
  10.              m.nombre,
  11.              d.enfermedad,
  12.              e.nombre
  13. FROM ((((consultas c INNER JOIN pacientes p
  14.                                    ON c.paciente = p.codigo)
  15.                                INNER JOIN diagnosticos d
  16.                                    ON c.codigo=d.consulta)
  17.                                INNER JOIN recetas r
  18.                                     ON c.codigo=r.consulta)
  19.                                INNER JOIN medicamentos m
  20.                                     ON r.medicamiento=m.codigo)
  21.                                INNER JOIN enfermedades e
  22.                                     ON e.codigo = d.enfermedad
  23. WHERE c.codigo = 4 AND p.doctor = 25

Faltaba alguna clausula ON.

Estas seguro que el dato doctor tiene que estar en la tabla pacientes...El doctor de cabecera quizas si pero y si un dia a un paciente le visita un doctor que no sea el suyo? Como lo reflejaras....

Otra duda todas las consultas generan una receta....

Código MySQL:
Ver original
  1. SELECT c.codigo AS consulta,
  2.              c.fecha,
  3.              c.motivo,
  4.              c.descripcion,
  5.              p.codigo AS paciente,
  6.              p.cedula,
  7.              p.nombre,
  8.              p.apellido,
  9.              r.medicamento,
  10.              m.nombre,
  11.              d.enfermedad,
  12.              e.nombre
  13. FROM (((consultas c INNER JOIN pacientes p
  14.                ON c.paciente = p.codigo)
  15.                     INNER JOIN diagnosticos d
  16.                           ON c.codigo=d.consulta)
  17.                               INNER JOIN enfermedades e
  18.                                   ON e.codigo = d.enfermedad)
  19.                                       LEFT JOIN (recetas r
  20.                                                  INNER JOIN medicamentos m
  21.                                                    ON r.medicamiento=m.codigo)
  22.                                          ON c.codigo=r.consulta
  23. WHERE c.codigo = 4 AND p.doctor = 25

Si una consulta no acaba en receta te la mostrará pero con los campos de la receta nulos.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 24/07/2012 a las 04:38