Cita:
Empezado por duilioisola
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