Unknown column in 4 tables INNER JOIN

Asked

Viewed 20 times

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.

1 answer

0

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
INNER JOIN produto ON (produto.cd_produto = itens_venda.cd_produto)
INNER JOIN funcionario ON (funcionario.cd_funcionario = itens_venda.cd_funcionario)
INNER JOIN cliente ON (cliente.cd_cliente = itens_venda.cd_cliente);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.