我正在尝试在SQL中合并两个没有重复的表。如果值= 1,则需要选择表B列B的值。表A是一个包含默认值的列表框,表B是每个用户的列表框值。
表A
Col_A Col_B
------------
701 null
702 null
703 null
704 null
表B
Col_A Col_B
-------------
701 1
703 1
所需结果
Col_A Col_B
-------------
701 1
702 null
703 1
704 null
答案 0 :(得分:0)
您要一个 left join
吗?
select a.col_a, b.col_b
from table_a a
left join table_b b on b.col_a = a.col_a
如果值== 1,我需要选择表B列B的值
在示例数据中,表b中的所有行都具有值1
。如果您确实也想根据该值进行过滤,请向left join
添加另一个条件:
select a.col_a, b.col_b
from table_a a
left join table_b b on b.col_a = a.col_a and b.col_b = 1
仅使用这两列,这似乎并不十分有用。如果您只想知道表b中是否存在具有相同col_a
和值为1
的某行,那么exists
更合适:>
select a.col_a,
case when exists (select 1 from tableb b where b.col_a = a.col_a and b.col_b = 1)
then 1
end as col_b
from table_a a