这对我来说有点难以解释,我试图获得所有可能的数字组合,而只使用一次数字,例如,如果我有数字 1 到 10 并且想要 3 个一组的唯一组合:
1,2,3
4,5,6
7,8,9
这些很好,但我目前正在一些表上进行笛卡尔连接,所以对于我得到的第一组:
1,2,3
3,2,1
1,3,2
2,3,1
2,1,3
等等......因为我已经使用过 1,2,3 一次,所以我不想要它的所有其他组合。
这是我目前正在使用的代码,我不太确定如何在 SQL 中执行我想要的操作。id1,id2,id3 是我试图找到所有可能组合的 3 个数字。
INSERT INTO recipe_index
SELECT distinct '3' as nummeals, t1.id as id1, t2.id as id2, t3.id as id3,
t1.calories+t2.calories+t3.calories as calories, t1.protein+t2.protein+t3.protein as
protein, t1.carbohydrate+t2.carbohydrate+t3.carbohydrate as carbohydrate,
t1.fat+t2.fat+t3.fat as fat from recipes t1, recipes t2, recipes t3
我希望我在这里试图完成的事情是有道理的..