sql >> Databáze >  >> RDS >> Mysql

Kombinujte více podřízených řádků do jednoho řádku MYSQL

Nejjednodušší způsob by bylo využít skupinovou funkci GROUP_CONCAT zde..

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

Výstup:

Id              ItemName       Options

1               Pizza          Pepperoni,Extra Cheese

2               Stromboli      Extra Cheese

Tímto způsobem můžete mít tolik možností, kolik chcete, aniž byste museli svůj dotaz upravovat.

Aha, pokud vidíte, že se vaše výsledky ořezávají, můžete zvýšit limit velikosti GROUP_CONCAT takto:

SET SESSION group_concat_max_len = 8192;


  1. ORA-38868

  2. Návod:Nastavení vysoké dostupnosti SQL Serveru

  3. Oracle SQL escape znak (pro '&')

  4. použijte mysql SUM() v klauzuli WHERE