0
I’m making a INNER JOIN with 4 tables, where the table itens_venda
receives the key to funcionario
, cliente
and produto
.
But the mistake Error Code: 1054. Unknown column 'itens_venda.cd_itens_venda' in 'field list'
prevents INNER JOIN.
--- INNER JOIN (não executa) ---
SELECT itens_venda.cd_itens_venda, produto.nome, funcionario.nome, cliente.nome,
itens_venda.tipo_pagamento, itens_venda.valor_item,
itens_venda.quantidade, itens_venda.valor_total, itens_venda.data_venda
FROM itens_venda i
INNER JOIN produto p ON (p.cd_produto = i.cd_produto)
INNER JOIN funcionario f ON (f.cd_funcionario = i.cd_funcionario)
INNER JOIN cliente c ON (c.cd_cliente = i.cd_cliente);
--- TABELAS ---
CREATE TABLE funcionario (
cd_funcionario INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
nome VARCHAR(30),
cpf VARCHAR(14) UNIQUE,
telefone VARCHAR(15) UNIQUE,
email VARCHAR(50) UNIQUE,
senha VARCHAR(32)
);
CREATE TABLE cliente (
cd_cliente INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
nome VARCHAR(30),
cpf VARCHAR(14) UNIQUE,
telefone VARCHAR(15) UNIQUE,
email VARCHAR(50) UNIQUE,
cidade VARCHAR(30),
bairro VARCHAR(30),
rua VARCHAR(30),
numero INT
);
CREATE TABLE produto (
cd_produto INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
nome VARCHAR(30),
marca VARCHAR(30),
codigo_barra VARCHAR(15),
cor VARCHAR(30),
tamanho VARCHAR(2),
CHECK (tamanho IN ('P','M','G','GG')),
genero CHAR(1),
CHECK (genero IN ('M','F')),
quantidade INT,
valor_compra DECIMAL(7,2),
valor_revenda DECIMAL(7,2)
);
CREATE TABLE itens_venda (
cd_itens_venda INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
cd_produto INT,
cd_funcionario INT,
cd_cliente INT,
tipo_pagamento VARCHAR(30),
CHECK (tipo_pagamento IN ('Pagamento á vista')),
valor_item DECIMAL(7,2),
quantidade INT,
valor_total DECIMAL(7,2),
data_venda TIMESTAMP(0),
FOREIGN KEY (cd_produto) REFERENCES produto (cd_produto),
FOREIGN KEY (cd_funcionario) REFERENCES funcionario (cd_funcionario),
FOREIGN KEY (cd_cliente) REFERENCES cliente (cd_cliente)
ON DELETE CASCADE
ON UPDATE CASCADE
);
In the field list try to replace table names by the aliases you have set for these tables.
– anonimo