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

Combina più righe figlio in una riga MySQL

Il modo più semplice sarebbe utilizzare la funzione di gruppo GROUP_CONCAT qui.

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

Che genererebbe:

Id              ItemName       Options

1               Pizza          Pepperoni,Extra Cheese

2               Stromboli      Extra Cheese

In questo modo puoi avere tutte le opzioni che desideri senza dover modificare la tua query.

Ah, se vedi che i tuoi risultati vengono ritagliati, puoi aumentare il limite di dimensione di GROUP_CONCAT in questo modo:

SET SESSION group_concat_max_len = 8192;