Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Select en varias tablas (https://www.clubdelphi.com/foros/showthread.php?t=38797)

sitrico 28-12-2006 23:13:29

Select en varias tablas
 
Tengo que generar una consulta que une 3 tablas:

- Horarios
- Citas
- Pacientes

En Horarios se encuentra una lista de "horas" para un día de la semana X: 9:00, 9:30, 10:00...19:30 en fin las horas de inicio de las citas (cada 30Min) y cada una tiene un IDHorario unico
En Citas tengo los campos: IdCita, fecha, IdHorario y ID Paciente
En Pacientes tengo IdPaciente, Nombre

Lo que Quiero Obtener es una consulta (simplificando las cosas) que tenga para una fecha dada:

idHorarios.Hora, IdPaciente.Nombre
9:00 <null>
9:30 Pedro Perez
10:00 <null>
....
19:30 <null>

El problema es que esta sentencia no me incluye los horarios no asignados (<null>)

Código SQL [-]
Select c.fchcita,  h.Hora, p.nombre from "Horarios" H, "Citas" C, "Pacientes" P
Where c.idpaciente = p.idpaciente And H.idhorario = c.idhorario
Order By FchCita, Hora

PD uso Firebird 2 con IBExpert

Creo que hay que usar un left join pero no me entiendo mucho con SQL :(
gracias por cualquier ayuda

sitrico 28-12-2006 23:59:04

Probando logre esto:

Código SQL [-]
select H.*, C.* From  "Horarios" H
       Left join "Citas" C On H.idhorario = c.IdHorario
Where DiaSem = 1 And IdArea = 1

Me devuelve los datos que nececito (pero falta el nombre del paciente) ahora la pregunta seria: ¿como incorporo la tercera tabla?

sitrico 29-12-2006 00:09:57

Y al final esto: :)

Código SQL [-]
select H.Hora, p.nombre, p.Apellido
From  "Horarios" H Left join "Citas" C On H.idhorario = c.IdHorario
                   Left Join "Pacientes" P On C.idpaciente = p.idpaciente
Where DiaSem = 1 and IdArea = 1


La franja horaria es GMT +2. Ahora son las 02:55:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi