sql
CREATE TABLE CASAS ( IDCASA INTEGER NOT NULL, CASA VARCHAR(10) NOT NULL, MATRICULA VARCHAR(30), IDPROPIETARIO INTEGER, NOTAS BLOB SUB_TYPE TEXT, /* Keys */ CONSTRAINT PK_CASAS PRIMARY KEY (IDCASA), /* Foreign keys */ CONSTRAINT FK_CASAS_PROP FOREIGN KEY (IDPROPIETARIO) REFERENCES PROPIETARIOS(IDPROPIETARIO) ON DELETE NO ACTION ON UPDATE CASCADE ); CREATE TABLE PROPIETARIOS ( IDPROPIETARIO INTEGER NOT NULL, PROPIETARIO VARCHAR(50) NOT NULL, DOC VARCHAR(30), NOTAS BLOB SUB_TYPE TEXT, NPROPIETARIO VARCHAR(50), /* Keys */ CONSTRAINT PK_PROPIETARIOS PRIMARY KEY (IDPROPIETARIO) );
Observan que el campo IDPROPIETARIO es la clave primeria en la Tabla propietarios y es clave foránea en la tabla casas sin ser obligatorio en esta.
El asunto es el siguiente: Cuando lanzo la siguiente consulta, los resultados son los esperados porque en el se icluyen todas las casas incluyendo las que no tienen propietario.
sql
SELECT * FROM CASAS
Hasta aquí todo bien, pero cuando lanzo la siguiente consulta en la que quiero llevar ademas de las casas los nombres de los propietarios y su documentos, entonces solo me trae las casas que tienen un propietario asignado y nesecito que me los traiga todos:
sql
SELECT CASAS.IDCASA, CASAS.CASA, CASAS.MATRICULA, CASAS.IDPROPIETARIO, CASAS.NOTAS, PROPIETARIOS.PROPIETARIO, PROPIETARIOS.DOC FROM CASAS INNER JOIN PROPIETARIOS ON (CASAS.IDPROPIETARIO = PROPIETARIOS.IDPROPIETARIO)
He hecho algunos intentos con la función COALESCE pero no se como usarla correctamente en este caso.
Que debo hacer?
Muchas gracias de antemano.