Я хотел бы знать, как я смогу сделать комбинацию всех возможностей из данных в моей базе данных.
Пункт 1, Пункт 2, Пункт 3, Пункт4 и Пункт5
Может быть любое количество элементов, что я хочу сделать, это показать все комбинации, а затем управлять ими, либо стереть строку, либо сделать их более комбинациями из 3, 4 и так далее.
ех. Название базы данных "store" имя таблицы "item"
ItemID Item
1 Item1
2 Item2
3 Item3
4 Item4
5 Item5
Ниже приведен пример комбинации из двух предметов, я бы хотел, чтобы они превратили их в комбинацию из 3 предметов. Это для программирования php.
Item1,Item2
Item1,Item3
Item1,Item4
Item1,Item5
Item2,Item3
Item2,Item4
Item2,Item5
Item3,Item4
Item3,Item5
Item4,Item5
Вам нужно пойти на самостоятельное соединение
Это в T-SQL
То же самое должно работать и в mysql
select t1.Item+','+t2.Item from item t1 join item t2 on t1.ItemID <t2.ItemID order by t1.ItemID,t2.ItemID
В зависимости от количества элементов, которые у вас есть, несколько вложенных циклов foreach
могут сделать трюк:
$arrItems = array("Item1","Item2","Item3",...,"ItemN");
foreach ($arrItems as $v1) {
foreach($arrItems as $v2) {
echo $v1 . "," . $v2;
}
}
Количество пар, которое у вас соответствует, соответствует числу циклов, в которые вы входите. Кто-то еще может предложить итерационный алгоритм с n
гнездами, без необходимости жесткого кодирования вложенных циклов.
Вы захотите использовать SQL Cross Join. Вы можете либо настроить другую таблицу, которая идентична, либо создать временную таблицу, а затем перекрестно присоединить две ваши таблицы к свойствам, которые вы хотите перекреститься. select b.item, d.item from itemtable1 b cross join (select * from itemtable2) d