sql >> Databasteknik >  >> RDS >> Mysql

Kombinera flera underordnade rader till en rad MYSQL

Det enklaste sättet skulle vara att använda gruppfunktionen GROUP_CONCAT här...

select
  ordered_item.id as `Id`,
  ordered_item.Item_Name as `ItemName`,
  GROUP_CONCAT(Ordered_Options.Value) as `Options`
from
  ordered_item,
  ordered_options
where
  ordered_item.id=ordered_options.ordered_item_id
group by
  ordered_item.id

Vilket skulle skriva ut:

Id              ItemName       Options

1               Pizza          Pepperoni,Extra Cheese

2               Stromboli      Extra Cheese

På så sätt kan du ha så många alternativ du vill utan att behöva ändra din fråga.

Ah, om du ser att dina resultat beskärs kan du öka storleksgränsen för GROUP_CONCAT så här:

SET SESSION group_concat_max_len = 8192;


  1. Jämförelse av datatyperna för datum och tid i SQL Server

  2. PI() Exempel i SQL Server

  3. Beverly Hills 90210 och ZIP+4:Hantering av adresser i datamodeller

  4. Hur tar jag bort ett fast antal rader med sortering i PostgreSQL?