Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta complicadilla en Firebird (https://www.clubdelphi.com/foros/showthread.php?t=44534)

Val 08-06-2007 14:43:49

Consulta complicadilla en Firebird
 
Hola!

Tengo las siguientes tablas con los siguientes campos y contenido
TABLA1
Idtabla1 campo1
1 1
2 1
3 4
4 6
5 7

TABLA2
idtabla2 campoA idtabla1
1 1 1
2 1 4
3 0 1
4 0 3
5 0 2

idtabla* es la clave principal de cada una de las tablas y en Tabla2 tengo idtabla1 como clave foranea.

Necesito hacer una consulta que me devuelva una fila o más filas por cada fila de la tabla1 en la que campo1>3 (lo que me hace pensar en un outer join) pero en la tabla2 solo me interesan aquellas filas en las que campoA=0

Desearia que me devolviera:

Idtabla1 campo1 idtabla2 campoA idtabla1
3 4 4 0 3
5 7 null null null

Si hago algo del tipo:
SELECT * FROM tabla1 right outer join tabla2 on tabla1.idtabla1=tabla2=idtabla2
where tabla1.campo1>3 and tabla2.campoA=0

no me devuelve la linea del idtabla1=5 y si pongo (tabla2.campoA=0 or tabla2.campoA) entonces ya no me devuelve nada

¿Alguna sugerencia?

Gracias

Ivanzinho 08-06-2007 16:45:03

prueba con esta consulta

Código SQL [-]
SELECT * 
FROM tabla1 left join tabla2 on tabla1.idtabla1=tabla2.idtabla1
where tabla1.campo1>3 and ((tabla2.campoA=0) or (tabla2.idtabla2 is null and campoA is null)

Un saúdo

Val 08-06-2007 17:10:48

Resuelto
 
Muchas gracias, para otra vez ya se que =null no es lo mismo que "is null" :P Gracias


La franja horaria es GMT +2. Ahora son las 22:58:12.

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