Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQL JOIN als einzelne Zeile mit untergeordneten Werten als Spalten und der Möglichkeit, den untergeordneten Beziehungswert ORDER BY zu verwenden

Einzelne Zeile pro Kontakt:

SELECT 
    contacts.id,
    contacts.first_name,
    contacts.last_name,
    GROUP_CONCAT(IF(field_values.field_id = 2, field_values.value, NULL)) AS email,
    GROUP_CONCAT(IF(field_values.field_id = 1, field_values.value, NULL)) AS field_1
FROM contacts 
LEFT JOIN field_values ON contacts.id = field_values.contact_id
GROUP BY contacts.id
ORDER BY email;.  -- it is optional, only include if you want to sort result by ascending emails.