Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/11/2014, 00:06
Avatar de pablo777
pablo777
 
Fecha de Ingreso: abril-2013
Ubicación: san luis
Mensajes: 5
Antigüedad: 11 años
Puntos: 0
URGENTE:Problema con joins, y natural join

Hola gente, vengo con un problema seguramente tonto pero urgente en una base de datos en postgresql, es con una operacion de INNER JOIN entre dos tablas.

Contratos:
Código:
CREATE TABLE "Contratos"
(
  "Cfechainicio" date NOT NULL,
  "CCódigo" integer NOT NULL,
  "Cmonto" real NOT NULL,
  "EstadoContrato" boolean NOT NULL,
  cdnifirma bigint NOT NULL,
  "Cancelado" boolean NOT NULL DEFAULT false,
  CONSTRAINT "Firma" FOREIGN KEY (cdnifirma)
      REFERENCES "Clientes" (cdni) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT "C-Código" UNIQUE ("CCódigo")
)
y clientes
Código:
CREATE TABLE "Clientes"
(
  cnbreyapellido character varying NOT NULL,
  cdni bigint NOT NULL,
  "cteléfono" bigint NOT NULL,
  clugar_trabajo character varying NOT NULL,
  cdomicilio character varying NOT NULL,
  "EstadoCliente" boolean NOT NULL,
  CONSTRAINT "Key3" PRIMARY KEY (cdni)
)
Este es mi INNER JOIN:

SELECT *
FROM "Contratos" INNER JOIN "Clientes"
ON'Clientes.cdni'='Contratos.cdnifirma' ;

Est consulta asi como esta no devuele ninguna fila, mientras que aplicando un NATURAL JOIN y cambiando cdnifirma en Contratos a cdni

SELECT *
FROM "Contratos" NATURAL JOIN "Clientes" ;

devuelve el resultado que yo quiero.

Mi consulta es, esta mal definida la INNER JOIN? porque no obtengo el mismo resultado?

Ademas, si yo quiero seleccionar algunas columnas de la consulta, digamos cnbreyapellido, en el apartado de la respuesta obtengo una columna unknown?name
Gracias!

Última edición por pablo777; 16/11/2014 a las 15:18