sql >> Databasteknik >  >> RDS >> Mysql

VÄLJ distinkta värden för flera rader med samma ID

Du kan använda den här enkla lösningen:

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'

För säkerhets skull gjorde jag kopplingarna LEFT JOIN beror på att jag inte vet om ett id kan ha saknas fält, i vilket fall de kommer att visas som NULL i våra härledda kolumner.

SQL-Fiddle Demo



  1. Hur installerar man Postgis till en Keg-installation av [email protected] med Homebrew?

  2. Minska databasanrop för att förbättra webbplatsens prestanda

  3. Hur trunkerar man en tabell med begränsad främmande nyckel?

  4. Kan jag använda MySQL LOAD XML LOCAL INFILE om mina rader inte har ett "namn"?