PDA

Ver la Versión Completa : UNION de dos consultas en SQLite-3


salvica
17-03-2009, 17:57:47
Hola

Se trata de sacar por un lado aquellas personas que tienen alquilada alguna propiedad y el tipo de propiedad que es, para ello hago lo siguiente:

-- inquilinos con contrato y tipos de propiedad
SELECT inquilinos.ID_CLAVE,
inquilinos.NOMBRE, inquilinos.APELLIDO_1, inquilinos.APELLIDO_2,
inquilinos.NIF,
inquilinos.TELEFONO_1,
inquilinos.DIRECCION, inquilinos.LOCALIDAD,
propiedades.TIPO
FROM contratos
LEFT JOIN inquilinos ON contratos.ID_INQUILINO=inquilinos.ID_CLAVE
LEFT JOIN propiedades ON contratos.ID_PROPIEDAD=propiedades.ID_CLAVE

y por otro lado sacar aquellas personas que no tienen ningún contrato firmado, para lo cual hago:

-- inquilinos sin contrato ni propiedad
SELECT inquilinos.ID_CLAVE,
inquilinos.NOMBRE, inquilinos.APELLIDO_1, inquilinos.APELLIDO_2,
inquilinos.NIF,
inquilinos.TELEFONO_1,
inquilinos.DIRECCION, inquilinos.LOCALIDAD,
"" AS TIPO
FROM inquilinos
WHERE inquilinos.ID_CLAVE NOT IN (SELECT contratos.ID_INQUILINO
FROM contratos)

El problema es que si hago la unión de las consultas bajo el SQLite Administrator, en teoría me muestra datos, pero:
- si corro el programa bajo el IDE de Delphi me dice que falta el campo APELLIDO_2
- si ejecuto directamente el programa, no da error pero no me muestra nada

¿veis qué puedo tener mal?
Gracias adelantadas
salvica

salvica
17-03-2009, 19:55:56
Hola
El problema es que si hago la unión de las consultas bajo el SQLite Administrator, en teoría me muestra datos, pero:
- si corro el programa bajo el IDE de Delphi me dice que falta el campo APELLIDO_2
salvica

Me respondo a mí mismo: HAY QUE PONER "AS nombre_campo" EN TODAS las definiciones de los campos

¿Alguien puede darme un enlace de alguna guía de SQLite? La página oficial no resuelve gran cosa.

Gracias de todas formas
Salvica