从2个表中选择所有行的组合

M_M*_*abi 2 c# datatable cartesian-product

我有两个像这样的数据表:

DT1:

   ID1
----------
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
Run Code Online (Sandbox Code Playgroud)

DT2:

   ID2
----------
    1
    2
    3
    4
    5
Run Code Online (Sandbox Code Playgroud)

现在,我想从这两个数据表中检索项目的所有组合,这样结果将包含50(10 x 5)行 - 如下所示:

dtResult:

ID1     ID2
------------
1        1
1        2
1        3
1        4
1        5
2        1
2        2
2        3
2        4
2        5
3        1
.        .
.        .
.        .
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法而不是使用循环?

Joh*_*Woo 5

您正在寻找笛卡尔积.使用CROSS JOIN

Select a.ID1, b.ID2 
FROM   dt1 A CROSS JOIN dt2 B
Run Code Online (Sandbox Code Playgroud)