SQL查询 - 将2个表组合为1,具有唯一值

时间:2017-11-01 17:43:30

标签: sql

我正在尝试编写一个select查询,将2个表组合成一个查询,从1中获取列,并将它们与另一列中的1列组合。

我的2个源表如下:

dbCalendar
Year | Month
------------
2017 | 1
2017 | 2
2017 | 3
2017 | 4

dbClients
Name
----
Client1
Client2
Client3

我想要达到的结果是:

Year | Month | Name
----------------------
2017 | 1     | Client1
2017 | 2     | Client1
2017 | 3     | Client1
2017 | 4     | Client1
2017 | 1     | Client2
2017 | 2     | Client2
2017 | 3     | Client2
2017 | 4     | Client2
2017 | 1     | Client3
2017 | 2     | Client3
2017 | 3     | Client3
2017 | 4     | Client3

我认为这是一个嵌套查询吗?任何帮助将不胜感激?

由于

3 个答案:

答案 0 :(得分:1)

您想要实现的目标被称为“笛卡尔产品”,它很简单:

SELECT * FROM dbCalendar, dbClients

答案 1 :(得分:1)

CROSS JOIN会将表格的每一行连接到另一个表格的每一行。

SELECT * FROM dbCalendar CROSS JOIN dbClients;

答案 2 :(得分:1)

您可以使用CROSS JOIN或只选择两个表名 e.g。

SELECT * FROM dbCalendar CROSS JOIN dbClients;

OR

SELECT * FROM dbCalendar, dbClients

两者都会返回相同的结果。