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

Kombinieren Sie mehrere untergeordnete Zeilen zu einer Zeile MYSQL

Am einfachsten wäre es, hier die Gruppenfunktion GROUP_CONCAT zu verwenden..

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

Was würde ausgeben:

Id              ItemName       Options

1               Pizza          Pepperoni,Extra Cheese

2               Stromboli      Extra Cheese

Auf diese Weise können Sie so viele Optionen haben, wie Sie möchten, ohne Ihre Abfrage ändern zu müssen.

Ah, wenn Sie sehen, dass Ihre Ergebnisse abgeschnitten werden, können Sie die Größenbeschränkung von GROUP_CONCAT wie folgt erhöhen:

SET SESSION group_concat_max_len = 8192;