SQL nao funciona

SQL

MySQL

Banco de Dados

13/02/2017

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

Curtidas 0

Melhor post

Luiz Santos

Luiz Santos

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
GOSTEI 2

Mais Respostas

Lucas Gomes

Lucas Gomes

13/02/2017

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

Carlos Arantes

13/02/2017

No MySQL vc não precisa usar o join explicitamente para poder fazer união com as tabelas?
GOSTEI 1
Fernando C

Fernando C

13/02/2017

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
GOSTEI 1
Kelvin Eger

Kelvin Eger

13/02/2017

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
GOSTEI 0
Kelvin Eger

Kelvin Eger

13/02/2017

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!
GOSTEI 1
POSTAR