Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SELECT valores distintos para várias linhas do mesmo ID


Você pode usar esta solução simples:
SELECT DISTINCT
    a.id,
    b.value AS SIGN_UP,
    c.value AS FIRST_NAME,
    d.value AS STREET
FROM tbl a
LEFT JOIN tbl b ON a.id = b.id AND b.field_name = 'sign_up'
LEFT JOIN tbl c ON a.id = c.id AND c.field_name = 'first_name'
LEFT JOIN tbl d ON a.id = d.id AND d.field_name = 'street'

Só por segurança, fiz as junções LEFT JOIN 's porque eu não sei se um id pode ter ausente campos, nesse caso eles aparecerão como NULL em nossas colunas derivadas.

Demonstração do SQL-Fiddle