Sql 将具有相同行数的两列连接起来

Sql 将具有相同行数的两列连接起来,sql,sql-server,join,Sql,Sql Server,Join,我想把两张桌子合并成一张。假设我有: 表1 ID Name 1 A 2 B 3 C 表2 ID Name 4 D 5 E 6 F 我想做表3 Name1 Name2 A D B E C F 如何在SQL Server中执行此操作?非常感谢您的帮助 select t1.Name Name1, t2.Name Name2 from Tabl

我想把两张桌子合并成一张。假设我有:

表1

ID       Name
1        A
2        B
3        C
表2

ID       Name
4        D
5        E
6        F
我想做表3

Name1    Name2
A        D
B        E
C        F
如何在SQL Server中执行此操作?非常感谢您的帮助

select t1.Name Name1, t2.Name Name2
from Table1 t1, table2 t2
where t1.ID = t2.ID


如果没有列ID怎么办?如果没有ID,表之间的关系如何?什么条件决定了Name1=A对应于Name2=D?如果您没有id,请使用Quassnoi的解决方案,并按照order by子句将id替换为表的主键。由于主键构成聚集索引,因此表1中的行将与表2中的tht匹配
select t1.Name Name1, t2.Name Name2
from Table1 t1 join table2 t2
     on t1.ID = t2.ID
WITH    t1 AS
        (
        SELECT  a.*, ROW_NUMBER() OVER (ORDER BY id) AS rn
        FROM    table1 a
        ),
        t2 AS
        (
        SELECT  a.*, ROW_NUMBER() OVER (ORDER BY id) AS rn
        FROM    table2 a
        )
SELECT  t1.name, t2.name
FROM    t1
JOIN    t2
ON      t1.rn = t2.rn