sql >> Base de Datos >  >> RDS >> Mysql

Combine múltiples filas secundarias en una fila MYSQL

La forma más sencilla sería hacer uso de la función de grupo GROUP_CONCAT aquí..

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

Lo que generaría:

Id              ItemName       Options

1               Pizza          Pepperoni,Extra Cheese

2               Stromboli      Extra Cheese

De esa manera, puede tener tantas opciones como desee sin tener que modificar su consulta.

Ah, si ve que sus resultados se recortan, puede aumentar el límite de tamaño de GROUP_CONCAT de esta manera:

SET SESSION group_concat_max_len = 8192;