Mysql
 sql >> Database >  >> RDS >> Mysql

Unisci una riga a più righe in un'altra tabella

Usa:

   SELECT x.name,
          GROUP_CONCAT(y.property SEPARATOR ', ')
     FROM PEOPLE x
LEFT JOIN PROPERTIES y ON y.name = x.name
    WHERE x.age > 26
 GROUP BY x.name

Vuoi la funzione MySQL GROUP_CONCAT ( documentazione ) per restituire un elenco separato da virgole del valore PROPERTIES.property.

Ho usato un LEFT JOIN piuttosto che un JOIN per includere i record PEOPLE che non hanno un valore nella tabella PROPERTIES - se vuoi solo un elenco di persone con valori nella tabella PROPERTIES, usa:

   SELECT x.name,
          GROUP_CONCAT(y.property SEPARATOR ', ')
     FROM PEOPLE x
     JOIN PROPERTIES y ON y.name = x.name
    WHERE x.age > 26
 GROUP BY x.name

Mi rendo conto che questo è un esempio, ma usare un nome è una scelta sbagliata per l'integrità referenziale se si considera quanti "John Smith" ci sono. Assegnare uno user_id, essendo un valore univoco per utente, sarebbe una scelta migliore.