sql >> Database >  >> RDS >> Mysql

Voeg een rij toe aan meerdere rijen in een andere tabel

Gebruik:

   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

U wilt de MySQL-functie GROUP_CONCAT ( documentatie ) om een ​​door komma's gescheiden lijst van de PROPERTIES.property-waarde te retourneren.

Ik heb een LEFT JOIN gebruikt in plaats van een JOIN om PEOPLE-records op te nemen die geen waarde hebben in de PROPERTIES-tabel - als u alleen een lijst wilt met mensen met waarden in de PROPERTIES-tabel, gebruik dan:

   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

Ik realiseer me dat dit een voorbeeld is, maar het gebruik van een naam is een slechte keuze voor referenciale integriteit als je bedenkt hoeveel 'John Smith's er zijn. Het toewijzen van een user_id, een unieke waarde per gebruiker, zou een betere keuze zijn.



  1. Stream binair bestand van MySQL om te downloaden met PHP

  2. Verwijder enorme hoeveelheden gegevens uit een enorme tabel

  3. Hoe doe je Multiple Inner Joins in Linq to Entities

  4. Sailsjs Mysql ORM meerdere zoekopdrachten op hetzelfde tabelveld