我想创建一个算法或公式,给我以下组合.我手动打印出包含4个具有相应值的表的示例的所有组合.
这不是排列,因为我需要组合始终遵循唯一格式
表1,表2,表3,表4的值
那么如何在SQL脚本中或通过C#代码实现这一点(VB.Net代码也可以工作)
注意:该解决方案包含我的问题所需的所有可能的48种组合.
问题
表1表2表3表4
a1 b1 c1 d1
a2 b2 c2 d2
a3 c3
c4
解
a1,b1,c1,d1
a1,b1,c1,d2
a1,b1,c2,d1
a1,b1,c2,d2
a1,b1,c3,d1
a1,b1,c3,d2
a1,b1,c4,d1
a1 ,b1,c4,d2
a1,b2,c1,d1
a1,b2,c1,d2
a1,b2,c2,d1
a1,b2,c2,d2
a1,b2,c3,d1
a1,b2,c3,d2
a1, b2,c4,d1
a1,b2,c4,d2
a2,b1,c1,d1
a2,b1,c1,d2
a2,b1,c2,d1
a2,b1,c2,d2
a2,b1,c3,d1
a2,b1 ,c3,d2
a2,b1,c4,d1
a2,b1,c4,d2
a2,b2,c1,d1
a2,b2,c1,d2
a2,b2,c2,d1
a2,b2,c2,d2
a2,b2, c3,d1
a2,b2,c3,d2
a2,b2,c4,d1
a2,b2,c4,d2
a3,b1,c1,d1
a3,b1,c1,d2
a3,b1,c2,d1
a3,b1,c2 ,d2
a3,b1,c3,d1
a3,b1,c3,d2
a3,b1,c4,d1
a3,b1,c4,d2
a3,b2,c1,d1
a3,b2,c1,d2
a3,b2,c2, d1
a3,b2,c2,d2
a3,b2,c3,d1
a3,b2,c3,d2
a3,b2,c4,d1
a3,b2,c4,d2
这被称为笛卡尔积.
select *
from
table1
cross join table2
cross join table3
cross join table4
Run Code Online (Sandbox Code Playgroud)
一样:
select *
from
table1, table2, table3, table4
Run Code Online (Sandbox Code Playgroud)