これを説明するのは少し難しいです。たとえば、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 は既に 1 回使用しているので、他のすべての組み合わせは必要ありません。
これは私が現在使用しているコードです。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
私がここで達成しようとしていることが何らかの意味を成すことを願っています..