我想知道如何从数据库中的数据中组合所有可能性。
Item1,Item2,Item3,Item4和Item5
可以有任意数量的项目,我想要做的是显示所有组合,然后能够操纵它们,要么擦除一行,要么将它们组合成3,4等项目的更多组合。
离。 数据库名称" store" 表名" item"
ItemID Item
1 Item1
2 Item2
3 Item3
4 Item4
5 Item5
以下是2个项目的组合示例,我希望他们将它们组合成3个项目组合。这是用于php编程的。
Item1,Item2
Item1,Item3
Item1,Item4
Item1,Item5
Item2,Item3
Item2,Item4
Item2,Item5
Item3,Item4
Item3,Item5
Item4,Item5
答案 0 :(得分:0)
您将要使用SQL Cross Join。您可以设置另一个相同的表或创建临时表,然后在要交叉连接的属性上交叉连接两个表。
select b.item, d.item from itemtable1 b cross join (select * from itemtable2) d
答案 1 :(得分:0)
根据您拥有的项目数量,一些嵌套的foreach
循环可能会起到作用:
$arrItems = array("Item1","Item2","Item3",...,"ItemN");
foreach ($arrItems as $v1) {
foreach($arrItems as $v2) {
echo $v1 . "," . $v2;
}
}
您拥有的配对数量与您嵌套的环路数量相对应。其他人可能能够提供带有n
嵌套的迭代算法,而无需对嵌套循环进行硬编码。
答案 2 :(得分:0)
你需要自我加入
这是在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