Sql server TSQL将两个表连接到一个大表中

Sql server TSQL将两个表连接到一个大表中,sql-server,database,tsql,join,Sql Server,Database,Tsql,Join,我需要将表A和表B合并到一个大表中。在每个表中,我都有(id、品牌、电源) 表A 表B 结果应该是: | A.brand | A.power | B.brand | B.power ------------------------------------------ 1 | BMW | 500 | BMW | 500 2 | SKODA | 220 | SKODA | 220 3 | PORSCHE | 450 | null

我需要将表A和表B合并到一个大表中。在每个表中,我都有(id、品牌、电源)

表A 表B 结果应该是:

  | A.brand | A.power | B.brand | B.power
------------------------------------------
1 | BMW     |     500 | BMW     |     500 
2 | SKODA   |     220 | SKODA   |     220
3 | PORSCHE |     450 | null    |    null
4 | null    |    null | FERRARI |     600
5 | null    |    null | HUMMER  |     350
这是我尝试过的,但似乎不起作用

SELECT
A.id,A.brand,A.[power],B.brand,B.[power]
FROM A
FULL JOIN B on A.id = B.id

有什么帮助吗?

你应该使用完整的句子:

SELECT
A.id,A.brand,A.power,B.brand,B.power
FROM tableA A
FULL OUTER JOIN tableB B on A.id = B.id

你应该使用完整的句子:

SELECT
A.id,A.brand,A.power,B.brand,B.power
FROM tableA A
FULL OUTER JOIN tableB B on A.id = B.id

我知道这是一种野蛮的力量,但它暂时有效:

SELECT a.id, 
       a.brand, 
       a.[power], 
       b.brand, 
       b.[power] 
FROM   a 
       LEFT OUTER JOIN b 
                    ON a.id = b.id 
UNION 
SELECT id, 
       NULL AS brand, 
       NULL AS power, 
       brand, 
       power 
FROM   b 
WHERE  id NOT IN (SELECT id 
                  FROM   a)

我知道这是一种野蛮的力量,但它暂时有效:

SELECT a.id, 
       a.brand, 
       a.[power], 
       b.brand, 
       b.[power] 
FROM   a 
       LEFT OUTER JOIN b 
                    ON a.id = b.id 
UNION 
SELECT id, 
       NULL AS brand, 
       NULL AS power, 
       brand, 
       power 
FROM   b 
WHERE  id NOT IN (SELECT id 
                  FROM   a)

如果你能更好地描述这个问题,而不是“它似乎不起作用”,这会有所帮助。这不能是oracle、mysql和sql server。您使用的是哪家dbms供应商/产品?我使用的是sqlserver 2014为什么在完全外部连接中power变为-450?我在编辑时错过了:)如果您能更好地描述问题,而不是“它似乎不起作用”。这不能是oracle、mysql和sql server。您使用的是哪家dbms供应商/产品?我使用的是sqlserver 2014为什么在完全外部连接中电源变为-450?编辑时我错过了:)@zinedinereda有什么问题?“这两张桌子你是怎么命名的?”Zinedinereda问,有什么问题?你是怎么给这两张表命名的?它很管用!!它做的工作!!