从两个表创建组合列表

时间:2014-11-12 20:44:39

标签: sql

我有一个包含CostCenter_ID(int)的表和一个包含Process_ID(int)的第二个表。

我想结合两个表的结果,以便将每个成本中心ID分配给所有进程ID,如下所示:

|CostCenterID | ProcessID |
---------------------------
|      1      |     1     |
|      1      |     2     |
|      1      |     3     |
|      2      |     1     |
|      2      |     2     |
|      2      |     3     |
|      3      |     1     |
|      3      |     2     |
|      3      |     3     |

我以前做过,但我画的是空白。我试过这个:

SELECT CostCenter_ID,NULL FROM dbo.Cost_Centers
UNION ALL
SELECT NULL,Process_ID FROM dbo.Processes

返回:

|CostCenterID | ProcessID |
---------------------------
|      1      |     NULL  |
|      NULL   |     1     |
|      NULL   |     2     |
|      NULL   |     3     |

1 个答案:

答案 0 :(得分:3)

尝试:

select a.CostCenterID, b.ProcessID 
from table1 a
cross join table2 b

或:

select a.CostCenterID, b.ProcessID 
from table1 a
,table2 b

注意:cross join是更好的方法,因为它让读者更清楚你的意图是什么。


更多信息(带照片):http://www.w3resource.com/sql/joins/cross-join.php

illustration of cross join