Ir ao conteúdo
  • Cadastre-se

MySQL Questão de aprendizagem QUERY banco de dados


Posts recomendados

Estou com dúvida nessa questão de aprendizagem do meu curso, alguém poderia me informar se realmente seria essa opção em negrito a correta?

 

Dadas as duas tabelas:

 

A query para exibir a descrição, o preço, o nome e a cidade do fornecedor de todas as peças cujo carro seja "Uno" é:

 

SELECT pecas.descricao, pecas.preco_unitario, fornecedores.nome, fornecedores.cidade 
FROM pecas 
INNER JOIN fornecedores ON pecas.numero_fornecedor = fornecedores.numero_cadastro WHERE fornecedores.carro = "Uno"

 

SELECT p.descricao, p.preco_unitario, f.nome, f.cidade 
FROM fornecedores f 
INNER JOIN pecas p ON f.numero_fornecedor = p.numero_cadastro 
WHERE p.carro = "Uno"

 

SELECT p.descricao, p.preco_unitario, f.nome, f.cidade 
FROM pecas p 
INNER JOIN fornecedores f ON p.numero_fornecedor = f.numero_cadastro 
WHERE p.carro = "Uno"

 

SELECT pecas.descricao, pecas.preco_unitario, fornecedores.nome, fornecedores.cidade 
FROM pecas, fornecedores ON pecas.numero_fornecedor = fornecedores.numero_cadastro 
WHERE pecas.carro = "Uno"

 

SELECT pecas.descricao, pecas.preco_unitario, fornecedores.nome, fornecedores.cidade 
FROM pecas, fornecedores 
WHERE carro = "Uno"

 

Sem título.jpg

6afcadac-18e0-4042-bcad-47d2576ecf57.jpg

Link para o comentário
Compartilhar em outros sites

  • Moderador

@S0nic Dado que sua tabela está errada, a resposta certa seria  a primeira resposta. Mas mesmo assim ela ainda está um pouco errada. 

 

O certo seria:

 

SELECT pecas.Descricao, pecas.Preco_unitario, fornecedores.Nome, fornecedores.Cidade FROM pecas
INNER JOIN Fornecedores ON fornecedores.numero_cadastro = pecas.numero_fornecedor
WHERE Pecas.Carro = "Uno"

 

Explico, No caso,  o relacionamento 1:N  consiste em uma tabela mandante, e uma tabela de auxilio, no caso aquela que é relacionada.

Basicamente, nesse caso, a tabela mandante é a peças, então é nela que você pesquisa, e a tabela fornecedores é a auxiliar, e nela que você deve indicar que o campo ID é igual a campo id da tabela mandante.

No caso, você inverteu a ordem...  no INNER JOIN.  então o certo é:

INNER JOIN Fornecedores ON Fornecedores.numero_cadastro = Pecas.numero_fornecedor

 

Você também pode colocar um aliase nas tabelas desta forma:

SELECT p.Descricao, p.Preco_unitario, f.Nome, f.Cidade FROM pecas AS p
INNER JOIN Fornecedores AS f ON f.numero_cadastro = p.numero_fornecedor
WHERE p.Carro = "Uno"

 

Ou seja, para colocar o aliase, necessita da palavra chave  "AS"  E nas suas respostas não tem ela.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!