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!