如何使用SQL Server 2008将两个表数据合并为一个

Rav*_*mar 2 sql sql-server sql-server-2008

我有两张桌子

表格1: tbl_test1

id | product1 | price1|
---+----------+-------+
1  | A        | 200   |
2  | B        | 250   |
3  | C        | 300   |
Run Code Online (Sandbox Code Playgroud)

表#2: tbl_test2

id | product2 | price2|
---+----------+-------+
40 | P        | 200   |
20 | Q        | 250   |
Run Code Online (Sandbox Code Playgroud)

我希望得到我给定的格式

id | product1 | price1|id | product2 | price2|
---+----------+-------+---+----------+-------+
1  | A        | 200   |50 | P        | 200   |
2  | B        | 250   |40 | Q        | 250   |
3  | C        | 300   |   |          |       |
Run Code Online (Sandbox Code Playgroud)

请帮忙...

Fel*_*tan 5

我不知道你的最终游戏是什么,但如果你只想并排显示你的数据,你需要使用FULL JOIN.此外,您必须ROW_NUMBER为每个表添加一个:

WITH CteTest1 AS(
    SELECT *,
        rn = ROW_NUMBER() OVER(ORDER BY id)
    FROM #tbl_test1
),
CteTest2 AS(
    SELECT *,
        rn = ROW_NUMBER() OVER(ORDER BY id)
    FROM #tbl_test2
)
SELECT
    t1.id, t1.product1, t1.price1,
    t2.id, t2.product2, t2.price2
FROM CteTest1 t1
FULL JOIN CteTest2 t2
    ON t2.rn = t1.rn
Run Code Online (Sandbox Code Playgroud)

ONLINE DEMO