加入两个没有关系的表,加1到多个

时间:2018-03-29 16:49:06

标签: sql

我现在经常光顾这个网站一段时间,但这一次,我没有找到任何关于这个问题的答案,所以这里有。

我有两张桌子没有任何PK / FK或其他关系。我想要做的是以下几点。

表1

Column A
A
B
C

表2

Column B
1
2
3

期望的结果:

合并表

Column A         Column B
A                1  
A                2
A                3
B                1
B                2
B                3
C                1
C                2
C                3

相当多,对于第一个表中的每个值,都会附加第二个表的完整列表,直到不再存在。

我希望这对我想要实现的目标有意义。

谢谢!

4 个答案:

答案 0 :(得分:4)

您需要使用cross join

SELECT ColumnA, ColumnB
FROM table1
CROSS JOIN table2
ORDER BY ColumnA;

答案 1 :(得分:1)

这应该这样做:

SELECT ColumnA, ColumnB
FROM TableA
CROSS JOIN TableB

答案 2 :(得分:1)

在其他答案中提到,你会想要使用CROSS JOIN,这将为你提供两个表的笛卡尔积:

SELECT t1.columnA, t2.columnB
  FROM t1 CROSS JOIN t2;

您可能会在旧代码中看到这种情况,如下所示:

SELECT t1.columnA, t2.columnB
  FROM t1, t2;

“笛卡尔积”是一个来自数学的术语:两组X和Y的笛卡尔积(关系数据库中的表实际上是集)是所有有序对(x,y)的集合,其中x在X和y中Y.在您的情况下,您将获得集合all values of column A in t1all values of column B in t2的笛卡尔积。

希望这有帮助。

答案 3 :(得分:0)

SELECT *
FROM Table1
CROSS JOIN Table2