如何创建算法或公式来获得组合?

Adn*_*eer 1 c# sql vb.net

我想创建一个算法或公式,给我以下组合.我手动打印出包含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
 

GSe*_*erg 6

这被称为笛卡尔积.

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)