SQL - consulta para que aparezcan campos null

 
Vista:

consulta para que aparezcan campos null

Publicado por Juan (3 intervenciones) el 12/07/2007 09:22:35
hola chicos, a ver si me podeis ayudar a solventar un problema con una consulta
quiero obtener las reservas que me han hecho en una tabla reservas
podeis ver las relaciones aki, q asi es mucho mas claro
http://www.telnet-ri.es/varios/relaciones.jpg
y la hago con esta consulta que me funciona perfectamente: (sorry por el copy&paste)

SELECT A.COD_RESERVA, A.FECHA, B.DESCRIPCION AS GRUPO, A.NUM_ASISTENTES, C.DESCRIPCION AS SALON, A.OBSERVACIONES, A.NUM_CONFIRMACION, A.CONFIRMACION
FROM RESERVA AS A, EMPRESAS AS B, SALONES AS C
WHERE A.FECHA BETWEEN 'fecha_inicio' AND 'fecha_fin' AND
A.COD_EMPRESA = B.COD_EMPRESA AND
A.COD_SALON = C.COD_SALON
ORDER BY A.FECHA

lo hace todo bien, solo que hay un problema, si en la tabla reserva, cod_salon o cod_empresa es null, ya no me aparecen en la consutla, y necesito que sí me salgan
ya que puede darse el caso de hacer una reserva sin poner la empresa o el salon que reservan
y al dejarlo null se jodio y no sale en la consulta :-\
si alguien tiene alguna idea se lo agradeceré en el alma
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta para que aparezcan campos null

Publicado por lmorilla (11 intervenciones) el 12/07/2007 09:42:31
Puede que te sirva esto

SELECT A.COD_RESERVA, A.FECHA, B.DESCRIPCION AS GRUPO, A.NUM_ASISTENTES, C.DESCRIPCION AS SALON, A.OBSERVACIONES, A.NUM_CONFIRMACION, A.CONFIRMACION
FROM RESERVA AS A, EMPRESAS AS B, SALONES AS C
WHERE A.FECHA BETWEEN 'fecha_inicio' AND 'fecha_fin' AND
(A.COD_EMPRESA = B.COD_EMPRESA OR A.COD_EMPRESA IS NULL) AND
(A.COD_SALON = C.COD_SALON OR A.COD_SALON IS NULL)
ORDER BY A.FECHA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta para que aparezcan campos null

Publicado por Juan (3 intervenciones) el 12/07/2007 10:11:28
Ya había probado esa opcion de añadir "or is null"
Pero no me vale, ya que al no hacer la comparacion entre los dos cod_empresa, por cada null que hay en la tabla A, me salen n registros de la tabla B o C.
No se si me explico, pero no funciona. Me sale una consulta que no concuerda con la realidad.

A ver si hay alguna idea más.

Gracias de todas maneras por la respuesta tan rapida.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta para que aparezcan campos null

Publicado por lmorilla (11 intervenciones) el 12/07/2007 10:40:42
Lo siento, no sé en qué pensaba, claro que tienes razón.

¿Cuáles son los campos claves en A, B y C?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta para que aparezcan campos null

Publicado por Isaias (5072 intervenciones) el 12/07/2007 18:41:23
¿Que base de datos ocupas?, ¿Porque no utilizas JOIN en lugar de la notacion antigua?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta para que aparezcan campos null

Publicado por Juan (3 intervenciones) el 13/07/2007 08:49:35
Pues estoy usando Mysql 5...

Pero no se a qué te refieres con notación antigua. La verdad es que lo hago así porque es como se hacerlo, como me enseñaron :)

Ya me dirás cómo lo harías tú a ver...que el uso del join no lo domino nada.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:consulta para que aparezcan campos null

Publicado por Isaias (5072 intervenciones) el 13/07/2007 18:50:01
SELECT t1.Id, b.Nombre
FROM Tabla1 t1 JOIN Tabla2 t2 ON t1.id = t2.id
WHERE.........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar