Я не говорю точно, я думаю, что вы получаете такую проблему как:
Ordered_Item
ID | Item_Name
1 | Pizza
2 | Stromboli
Ordered_Options
Ordered_Item_ID | Option_Number | Value
1 43 Pepperoni
1 44 Extra Cheese
2 44 Extra Cheese
выход
ID | Item_Name | Option_1 | Option_2
1 Pizza Pepperoni Extra Cheese
2 Stromboli NULL Extra Cheese
И мои предложения по использованию этого метода решают эту проблему следующим образом:
- Самый простой способ - использовать группу 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;