none
Consultar dois valores em um mesmo campo RRS feed

  • Pergunta

  • Bom Dia,

    Trabalho com um banco de dados Mysql para uma loja virtual

    preciso fazer uma consulta onde eu busco no mesmo campo duas informações onde o que diferencia elas é uma segunda coluna de atributos

    exemplo de como é guardado as informações do  cadastro de cliente

    idCli -atributo -valor

    1 -1 - nome

    1 -2 - Sobrenome

    2 -1 - nome

    2 -2 - Sobrenome

    preciso juntar isso em uma linha só ficando assim o resultado da pesquisa:

    idCli -atributo -valor

    1 -nome- sobrenome

    tentei esse comando mas não rolou

    SELECT (attribute_id WHERE attribute_id = 5) AS 1, (attribute_id WHERE attribute_id = 144) AS 2 FROM loja21.customer_entity_varchar

    Desde ja agradeço ajuda Galera



    segunda-feira, 26 de agosto de 2013 15:32

Respostas

Todas as Respostas

  • Boa tarde,

    Experimente mais ou menos dessa forma:

    SELECT 
        n.IdCli,
        n.attribute AS nome, 
        s.attribute AS sobrenome
    FROM loja21.customer_entity_varchar as n
    left join loja21.customer_entity_varchar as s
        on 
            s.IdCli = n.IdCli and 
            s.attribute_id = 144
    where 
        n.attribute_id = 5

    Espero que ajude.


    Assinatura: http://www.imoveisemexposicao.com.br

    segunda-feira, 26 de agosto de 2013 17:14
  • Muito Obrigado cara Deu certo

    Fiz umas adaptaçoes e rodou perfeito

    meu codigo ficou assim

    tive que incluir mais um Join pois precisava da data que estava em outra tabela

    SELECT 
    
        n.value  AS Nome, 
        s.value AS Tipo,
        customer_entity.created_at as Cadastro
    
    FROM loja21.customer_entity_varchar as n
    
    INNER JOIN loja21.customer_entity_varchar as s 
    on (s.entity_id = n.entity_id and s.attribute_id = 144 )
    
    INNER JOIN loja21.customer_entity  
    ON (s.entity_id =  customer_entity.entity_id) 
    
    where 
    n.attribute_id = 5

    Valew mesmo

    segunda-feira, 26 de agosto de 2013 18:12