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

Kombiner flere underordnede rækker til én række MYSQL

Den nemmeste måde ville være at gøre brug af GROUP_CONCAT gruppefunktionen her..

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

Hvilket ville udsende:

Id              ItemName       Options

1               Pizza          Pepperoni,Extra Cheese

2               Stromboli      Extra Cheese

På den måde kan du have så mange muligheder, som du vil, uden at skulle ændre din forespørgsel.

Ah, hvis du ser dine resultater blive beskåret, kan du øge størrelsesgrænsen for GROUP_CONCAT sådan her:

SET SESSION group_concat_max_len = 8192;


  1. MySQL-forbindelse over SSH-tunnel - hvordan specificeres anden MySQL-server?

  2. Hjælp til MySQL-opdateringssag

  3. Sådan indstilles intervaloutputformatet i PostgreSQL

  4. Sådan trækkes data fra databasen og se dem som en ListView