Ver Mensaje Individual
  #10  
Antiguo 24-02-2009
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Reputación: 21
salvica Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
Creo que la solución es esta:
Debes utilizar el LEFT JOIN, pues quieres todo lo que esté en la tabla de la izquierda de la relación, sin importar que haya o no datos en la tabla de la derecha de relación.
Qudaría:
Todos los Inquilinos.
De estos todos sus contratos, si las hubiera.
De estos todas sus propiedades, si las hubiera.
Hola duilioisola, gracias, funciona a la perfección. He tenido que adaptarlo al sql de ado y queda así:
Código SQL [-]
         SQL.Clear;
         SQL.Add( 'SELECT inquilin.ID_CLAVE,' );
         SQL.Add( '       inquilin.NOMBRE, inquilin.APELLIDO_1, inquilin.APELLIDO_2,' );
         SQL.Add( '       inquilin.NIF,' );
         SQL.Add( '       inquilin.TELEFONO_1,' );
         SQL.Add( '       inquilin.DIRECCION, inquilin.LOCALIDAD,' );
         SQL.Add( '       propieda.TIPO' );
         SQL.Add( '  FROM inquilin' );
         SQL.Add( '       LEFT JOIN (contrato' );
         SQL.Add( '                  LEFT JOIN propieda' );
         SQL.Add( '                    ON contrato.ID_PROPIED=propieda.ID_CLAVE' );
         SQL.Add( '       ) ON inquilin.ID_CLAVE=contrato.ID_INQUILI' );
         SQL.Add( ' ORDER BY inquilin.APELLIDO_1, inquilin.APELLIDO_2, inquilin.NOMBRE' );
Por cierto, esto para qué era?
Código SQL [-]
         SQL.Add( ' WHERE propieda.TIPO=:TIPO' );
Gracias a tod@s por la ayuda prestada
Salvica
Responder Con Cita