从没有值的表中加入列

时间:2015-04-14 14:12:51

标签: sql postgresql left-join

我有一个名为表A的表,它是ID的列表

表A

id | 
1  |
2  |
3  |
4  |
5  |

然后我有另一个名为表B的表,它是一个ID列表和一个值

表B

id | value
1  | 473
3  | 333
4  | 533

我想从表A中选择所有ID,即使它们在表B中没有对应的值(非对应值可以为空/空或零),我想要的是:

id |
1  | 473
2  | 
3  | 333
4  | 533
5  |

4 个答案:

答案 0 :(得分:1)

最简单的方法是在连接条件中LEFT JOIN with USING

SELECT *
FROM   a
LEFT   JOIN b USING (id);

答案 1 :(得分:0)

使用简单的LEFT JOIN:

select a.id, b.value
from TableA a
left join TableB b
  on a.id = b.id

答案 2 :(得分:0)

SELECT
a.ID
,b.value
FROM A as a
LEFT JOIN B as b
ON a.ID = b.ID

在B上使用LEFT JOIN将为您提供所有A,同时显示B的已知和未知匹配。

答案 3 :(得分:0)

左连接可以满足您的需求。您甚至可以为没有值的值添加值。这可能对报告有益,有些则不好。

    select 
    a.id
    ,case when(b.value in ('Null', ' ')then 'No Value'
    else b.value
    end as Value

    from Table_A a

    left join Table_B b
    on B.id = A.id