如何在sql中组合两个不同值的表?

时间:2017-08-16 07:17:04

标签: sql sql-server

如何组合两个表,其中一个表有另一个我要添加到两个表中的表?

例如,
enter image description here

我有这两个表,ID匹配和ID,我想将它组合成右边的那个,好像总匹配为null-但默认值为-0

我试过这样的想法 -

Select distinct  k.ID,
matchSum 
from theID as k, ID-matchs

但它给了我 笛卡尔乘法。

3 个答案:

答案 0 :(得分:1)

您可以使用LEFT JOINcoalesce来获得所需的结果。

    SELECT t1.Id,
               Coalesce(t2.matches, 0) as Matches
        FROM theId t1
        LEFT JOIN IDmatchs t2 ON t1.Id = t2.Id
        order by t1.Id;

您可以查看演示here

答案 1 :(得分:0)

尝试此查询:

SELECT 
  B.ID,
  ISNULL(A.Matches, 0) as Matches
FROM
  TABLEA as A
  LEFT JOIN TABLEB as B
    on A.ID = B.ID

答案 2 :(得分:0)

您可以尝试使用UNION

SELECT * FROM table1
UNION
SELECT *, ISNULL(matches,0) FROM table2

或者反过来使用isnull将null替换为0,我不确定表名是什么。