Ir al contenido


Foto

[RESUELTO] Nulos en Firebird 2.1


  • Por favor identifícate para responder
2 respuestas en este tema

#1 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 11 octubre 2009 - 10:38

Compañeros tengo el siguiente problema en Firebird 2.1, dos tablas así:



sql
  1. CREATE TABLE CASAS (
  2.   IDCASA        INTEGER NOT NULL,
  3.   CASA          VARCHAR(10) NOT NULL,
  4.   MATRICULA      VARCHAR(30),
  5.   IDPROPIETARIO  INTEGER,
  6.   NOTAS          BLOB SUB_TYPE TEXT,
  7.   /* Keys */
  8.   CONSTRAINT PK_CASAS
  9.     PRIMARY KEY (IDCASA),
  10.   /* Foreign keys */
  11.   CONSTRAINT FK_CASAS_PROP
  12.     FOREIGN KEY (IDPROPIETARIO)
  13.     REFERENCES PROPIETARIOS(IDPROPIETARIO)
  14.     ON DELETE NO ACTION
  15.     ON UPDATE CASCADE
  16. );
  17.  
  18. CREATE TABLE PROPIETARIOS (
  19.   IDPROPIETARIO  INTEGER NOT NULL,
  20.   PROPIETARIO    VARCHAR(50) NOT NULL,
  21.   DOC            VARCHAR(30),
  22.   NOTAS          BLOB SUB_TYPE TEXT,
  23.   NPROPIETARIO  VARCHAR(50),
  24.   /* Keys */
  25.   CONSTRAINT PK_PROPIETARIOS
  26.     PRIMARY KEY (IDPROPIETARIO)
  27. );



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
  1. 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
  1. SELECT
  2.   CASAS.IDCASA,
  3.   CASAS.CASA,
  4.   CASAS.MATRICULA,
  5.   CASAS.IDPROPIETARIO,
  6.   CASAS.NOTAS,
  7.   PROPIETARIOS.PROPIETARIO,
  8.   PROPIETARIOS.DOC
  9. FROM
  10.   CASAS
  11.   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.
  • 0

#2 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 11 octubre 2009 - 10:50

prueba a cambiar el inner join por left join para que muestre todas las casas asi no tengan su correspondiente propietario
  • 0

#3 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 11 octubre 2009 - 10:53

Perfecto esa es la solución,  gracias amigo. (y) (y)
  • 0




IP.Board spam blocked by CleanTalk.