我有一个名为表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 |
答案 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