Mysql
 sql >> база данни >  >> RDS >> Mysql

Комбинирайте множество дъщерни реда в един ред MYSQL

Най-лесният начин е да използвате груповата функция GROUP_CONCAT тук..

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

Което ще изведе:

Id              ItemName       Options

1               Pizza          Pepperoni,Extra Cheese

2               Stromboli      Extra Cheese

По този начин можете да имате толкова опции, колкото искате, без да се налага да променяте заявката си.

А, ако видите, че резултатите ви се изрязват, можете да увеличите ограничението за размера на GROUP_CONCAT по следния начин:

SET SESSION group_concat_max_len = 8192;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получа само цифри от String в mysql?

  2. Синтаксис на SQL ALTER TABLE – Изброен от СУБД

  3. Как да изчислим пълзящата средна в MySQL

  4. MySQL Съхранена процедура с параметри

  5. Мога ли да използвам подготвен израз на PDO, за да обвържа идентификатор (име на таблица или поле) или ключова дума за синтаксис?