Mysql
 sql >> Base de données >  >> RDS >> Mysql

SELECT des valeurs distinctes pour plusieurs lignes du même ID

Vous pouvez utiliser cette solution simple :

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'

Juste pour être sûr, j'ai fait les jointures LEFT JOIN 's parce que je ne sais pas si un identifiant peut avoir manquant champs, auquel cas ils apparaîtront comme NULL dans nos colonnes dérivées.

Démo SQL-Fiddle