sql >> Database >  >> RDS >> Mysql

Combineer meerdere onderliggende rijen in één rij MYSQL

De gemakkelijkste manier zou zijn om hier gebruik te maken van de GROUP_CONCAT groepsfunctie..

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

Wat zou opleveren:

Id              ItemName       Options

1               Pizza          Pepperoni,Extra Cheese

2               Stromboli      Extra Cheese

Op die manier kunt u zoveel opties hebben als u wilt zonder dat u uw zoekopdracht hoeft aan te passen.

Ah, als je ziet dat je resultaten worden bijgesneden, kun je de maximale grootte van GROUP_CONCAT als volgt verhogen:

SET SESSION group_concat_max_len = 8192;


  1. Geavanceerde MySql-query:tabel bijwerken met informatie uit een andere tabel

  2. SQLite TOON TABELLEN Equivalent

  3. Opgeslagen Oracle-procedure met parameters voor IN-clausule

  4. Kopieer gegevens naar een nieuwe tabel in MySQL