Jump to content
Sign in to follow this  
DeanPage

Consulta Categoria - Subcategoria - ComboBox

Recommended Posts

Estou com dificuldade em fechar essa lógica da busca...

Preciso exibir no combobox a categoria e a subcategoria de determinado produto...

Tenho no banco as tabelas, com algumas linhas básicas...

 

Categoria

Subcategoria

Produto

 

 

Com esse SELECT a baixo, tem retornado certinho todas as categorias e as subcategorias devidas,,,,

 

porém, somente na categoria, ele tem repetido a categoria do produto N vezes (aparentemente o número de subcategorias da categoria)

 

 

SELECT categoria.categoria, categoria.idcategoria, subcategoria.idsubcategoria, subcategoria.subcategoria_idcategoria, produto.categoria_idcategoria, produto.subcategoria_idsubcategoria

 

FROM produto

 

LEFT JOIN categoria ON categoria.idcategoria = produto.categoria_idcategoria

 

LEFT JOIN subcategoria ON subcategoria.subcategoria_idcategoria = categoria.idcategoria WHERE produto.idproduto = $IDproduto

 

 

 

 

Alguém teria alguma idéia de correção ou alguma caso a mostrar com esse objetivo... já procurei muito, mas nada funciona!

Share this post


Link to post
Share on other sites

Bom dia DeanPage,

Isso acontece porque o produto não precisa ter armazenado o id da categoria, ele só precisa do id da sub-categoria,

e a partir deste id você pega a categoria, desta forma:

SELECT c.categoria, c.idcategoria, b.idsubcategoria, b.subcategoria_idcategoria, a.categoria_idcategoria, a.subcategoria_idsubcategoria
FROM produto a
LEFT JOIN subcategoria b ON b.subcategoria_idcategoria = a.subcategoria_idsubcategoria
LEFT JOIN categoria c ON b.subcategoria_idcategoria = a.categoria_idcategoria
WHERE a.idproduto = $IDproduto

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By danilo759
      Estou com uma dúvida, em uma tabelinha é cadastrado a data em uma coluna e a hora em outra coluna, então para "juntar" podemos usar CONCAT() no SELECT. Tudo certo...
       
      SELECT id, CONCAT(data_ini, ' ', hora_ini) as inicio FROM tabela

      Retorna como esperado:

       

      Minha dúvida é, se eu quiser exibir o horário de término para ficar assim como seria a consulta? Lembrando que não existe as colunas data_final e horario_final.

      2020-09-13 03:00:00 2020-09-13 04:00:00
      2020-09-13 04:00:00 2020-09-13 05:00:00
      2020-09-13 05:00:00 ....
    • By FabianoSouza
      Pessoal, como se faz para definir a região de um determinado CEP?
      Preciso criar uma flag no meu select para dizer se a pessoa mora na ZL, ZO, ZS ou ZN.
      Alguém tem uma relação de CEP confiável para eu poder iniciar esse trabalho?
       
       
      Obrigado.
    • By Matheus Bispo
      Boa noite galera, estou com uma dúvida.
       
      Tenho uma tabela chamada Usuários, onde lá possuo ID, NOME, EMAIL e SENHA.
       
      Estou desenvolvendo um sistema de relatório de logs, e na minha tabela logs, eu tenho o log_usuario e log_afetado, AMBOS REFERENCIAM o ID da tabela Usuários.
       
      A minha dúvida é... Como eu posso trazer os NOMES desses, no select?
       
      O que eu estou fazendo é esse daqui:
       
      $this->Select = "SELECT log.log_id as id, log.log_ip, log.log_usuario, log.log_afetado, log.log_acao, log.log_tempo, log1.usu_nome as dono_nome, log2.usu_nome as afetado_nome FROM logs log    LEFT OUTER JOIN
                  usuarios as log1 ON log_usuario = log1.usu_id LEFT OUTER JOIN
                  usuarios as log2 ON log_afetado = log2.usu_id WHERE
                  log.log_usuario = :log_usuario";
       
      Mas não estou conseguindo trazer os nomes, utilizando um var_dump(), tráz apenas os IDs. O que eu estaria fazendo de errado?
    • By asacap1000
      Salve galera estou com um problema em uma consulta no banco de dados.
      Preciso trazer um xml de um campo porém tem alguns lançamentos que estão com mais de 4000 caracteres, estou usando para a pesquisa o seguinte select
       
      SELECT ID_WS_GATEWAY, ID_WS_CONFIG, STATUS, ERRCODE, ERRMSG, FOLDER, FILENAME, DATE_IN, DATE_ON, SITE, WS, DBMS_LOB.SUBSTR(T.XMLDATA.getClobVal(),4000,1) XMLDATA, DIRECTION FROM WS_GATEWAY T Tem alguma outra forma de buscar uma quantidade maior neste campo?
       
       
    • By FabianoSouza
      Tenho vários usuários que executam a mesma consulta.
      Preciso que os registros sejam exibidos em ordem diferente para cada usuário.
       
      Como consigo atingir esse objetivo? 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.