如何获取这些表的矩阵?

时间:2017-11-01 18:32:36

标签: sql sql-server

我这里有两张表,需要为所有组合生成一个矩阵

表1

Brand Company ID
1     1       1 
2     2       2
3     3       3

表2

Prod1 Prod2 Prod3 Prod4 Prod5 
4     5     6     18    19
5     6     7     20    5

我试图实现的结果

结果表:

Brand Company ID Prod1 Prod2 Prod3 Prod4 Prod5 
1     1       1   4     5     6     18    19
1     1       1   5     6     7     20    5
2     2       2   4     5     6     18    19
2     2       2   5     6     7     20    5

如果他们有某种ID而不是如何处理这个以获得矩阵,我本可以使用它。

谢谢

1 个答案:

答案 0 :(得分:2)

不确定查询中table1的第三行发生了什么,以及为什么它不在结果中,但我认为您正在寻找cross join

select Brand, Company, ID, Prod1, Prod2, Prod3, Prod4, Prod5 
from table1
  cross join table2

rextester演示:http://rextester.com/UOZ33372

返回(添加了order by):

+-------+---------+----+-------+-------+-------+-------+-------+
| Brand | Company | ID | Prod1 | Prod2 | Prod3 | Prod4 | Prod5 |
+-------+---------+----+-------+-------+-------+-------+-------+
|     1 |       1 |  1 |     4 |     5 |     6 |    18 |    19 |
|     1 |       1 |  1 |     5 |     6 |     7 |    20 |     5 |
|     2 |       2 |  2 |     4 |     5 |     6 |    18 |    19 |
|     2 |       2 |  2 |     5 |     6 |     7 |    20 |     5 |
|     3 |       3 |  3 |     4 |     5 |     6 |    18 |    19 |
|     3 |       3 |  3 |     5 |     6 |     7 |    20 |     5 |
+-------+---------+----+-------+-------+-------+-------+-------+