SQL将值连接到一组值

eug*_*220 2 sql sql-server sql-server-2008

说我有两张桌子:
表1:

number
1
2
3
Run Code Online (Sandbox Code Playgroud)

和表2:

letter
a
b
c
d
e
f
g
Run Code Online (Sandbox Code Playgroud)

我怎么生产

number      letter
a              1
a              2
a              3
b              1
b              2
b              3
c              1
c              2
c              3
Run Code Online (Sandbox Code Playgroud)

一直到g - 我只想将每个值中的一个分配给表的每个特定值

Nen*_*vic 12

虽然查询建议如下:

SELECT number, letter FROM Table1, Table2
Run Code Online (Sandbox Code Playgroud)

将工作相同,甚至可能看起来更简单 - 不要使用它.这种旧式语法在20多年前已经过时,引入了ANSI-92标准.

请使用ANSI-JOINS:

SELECT t1.number, t2.letter
FROM Table1 t1
CROSS JOIN Table2 t2
Run Code Online (Sandbox Code Playgroud)

也养成了为列添加别名和前缀的习惯.


Ica*_*rus 5

交叉加入:

select Table1.number, Table2.letter 
from Table1 CROSS JOIN Table2
Run Code Online (Sandbox Code Playgroud)

  • 以这种方式使用`,`已被弃用.为什么建议使用此而不是ANSI JOIN? (5认同)