选择SQL中的每个记录

时间:2015-03-09 23:32:49

标签: sql sql-server database resultset

有没有简单的方法来选择两个表的每个记录,有点难以解释,但如果我有两个表客户端和产品

Client
A
B
C

Product
1
2
3

什么查询会得到如下结果:

RESULT
A1
A2
A3
B1
B2
B3
C1
C2
C3

4 个答案:

答案 0 :(得分:6)

这称为cross join(或笛卡尔积):

select c.field, p.field
from client c 
    cross join product p

此时将列组合在一起是相当简单的。

答案 1 :(得分:2)

使用CROSS JOIN

SELECT C.client_column
       + CONVERT(VARCHAR(50), P.Product_column)
FROM   client C
       CROSS JOIN product P 

答案 2 :(得分:0)

使用CROSS JOIN

SELECT C.Name + CAST(P.Id AS VARCHAR(10)) FROM Client C
CROSS JOIN Product P

答案 3 :(得分:0)

或者,在SQL Server中,您可以从列分隔的表列表中select。然后,您可以在模拟标准join的{​​{1}}子句中指定where条件,或者您不能指定任何join条件,这将创建类似于以下内容的笛卡尔积join

cross join