SQL nao funciona

13/02/2017

0

Boa noite, estou fazendo uma consulta em várias tabelas com relacionamento, porém nada retorna.

Segua o código abaixo:

SELECT v.cod_vendedor, v.nome_vendedor,
                 p.cod_produto, p.descricao_produto, p.cod_vendedor, p.estoque, p.valor_produto, p.marca, p.cod_categoria_prod, p.foto,
                 c.cod_categoria_prod, c.categoria_produto
          FROM   vendedor v,
                 produto p,
                 categoria_produto c
          WHERE  v.cod_vendedor = p.cod_vendedor and
                 c.cod_categoria_prod = p.cod_categoria_prod
Kelvin Eger

Kelvin Eger

Responder

Post mais votado

14/02/2017

Kelvin
A diferença principal entre INNODB e MyISAM tem a ver com o "engine do banco" suportar chaves estrangeiras ou não (respectivamente)
Sua consulta seria igual nas duas versões.
O que talvez melhorasse seria a performance.

No seu caso, vai decompondo sua consulta.
Primeiro executa uma tabela, depois a outra, depois amarrada.
Para não estar retornando nada e nem dar erro é possivel que não existam valores iguais para as chaves das tabelas.

Grande abraço

Luiz Santos

Luiz Santos
Responder

Mais Posts

13/02/2017

Lucas Gomes

Caso não esteja executando o comando diretamente no Workbench, execute lá, e veja se aparece alguma mensagem de erro.
Responder

14/02/2017

Carlos Arantes

No MySQL vc não precisa usar o join explicitamente para poder fazer união com as tabelas?
Responder

14/02/2017

Fernando C

poste a estrutura das tabelas ou o MER - mas essas linhas estão estranhas:
c.categoria_produto
categoria_produto c

veja q na 1ª linha categoria_produto é 1 coluna e na 2ª é 1 tabela; verifique.
poste tb mensagens de erro
Responder

14/02/2017

Kelvin Eger

Não apareceu nenhuma mensagem de erro no workbench. Aparentemente o erro está por parte que o phpMyAdmin não está interpretando as ligações.
Apóas análise de um amigo meu, ele verificou que o tipo poderia estar interferindo. O tipo atual está como MyISAM, segundo meu colega, deveria ser INNODB
Responder

14/02/2017

Kelvin Eger

Certo, o problema em que a minha consulta não retornava nada, era simplesmente que por o MyISAM não controlar as chaves estrangeiras, ele permitia que eu excluísse dados que estavam relacionados em outras tabelas, ou seja de acordo com o que estava guardado, nenhum dado atendia a consulta de fato. Ao mudar para o INNODB agora, passou a respeitar as restrições de chaves nas exclusões.
Mas fico grato pelo tempo!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar