Sql server 用子集连接超集表

Sql server 用子集连接超集表,sql-server,join,superset,Sql Server,Join,Superset,我在MSSQL上。我有两张桌子。其中一个具有ID和行值: ID 1 2 3 4 5 另一个表有ID和Amount ID、金额 3, 30 4, 40 5, 50 1, 0 2, 0 3, 30 4, 40 5, 50 我想要一个能给我以下信息的查询: ID、金额 3, 30 4, 40 5, 50 1, 0 2, 0 3, 30 4, 40 5, 50 关于我如何做到这一点有什么想法吗?谢谢 如果我正确理解了您的问题,那么假设表名为TableA和Tabl

我在MSSQL上。我有两张桌子。其中一个具有ID和行值:

ID

1

2

3

4

5
另一个表有ID和Amount

ID、金额

3, 30

4, 40

5, 50
1, 0

2, 0

3, 30

4, 40

5, 50
我想要一个能给我以下信息的查询:

ID、金额

3, 30

4, 40

5, 50
1, 0

2, 0

3, 30

4, 40

5, 50

关于我如何做到这一点有什么想法吗?谢谢

如果我正确理解了您的问题,那么假设表名为TableA和TableB,您可以使用左外联接,如下所示:

SELECT A.ID, ISNULL(B.Amount, 0) Amount
  FROM TableA A
 LEFT OUTER JOIN TableB B
   ON A.ID = B.ID
  
使用left-outer-join将返回第一个表(TableA)中的所有行,而ISNULL(B.Amount,0)函数将为返回的值为NULL的行(即TableA中没有与TableB中ID相同的对应行的行)返回0