您好我是数据库新手,我正在尝试从多个表中获取记录,但根据选择以下是我的表
Table1
Column1 Column2
1 10
2 25
3 23
4 15
5 7
Table2
Column1 Column2
2 15
3 13
5 17
Table3
Column1 Column2
2 45
结果表应该有
之类的记录 Column1 Column2
1 10
2 45
3 13
4 15
5 17
我正在尝试但尚未得到输出。任何帮助或计算此输出的方向将是很有帮助的。
更新
我想要的是获取table1中的所有行,然后如果table2包含匹配的记录,那么它将从结果集中删除匹配的记录并添加table2匹配的记录,然后table3重复相同的记录。
答案 0 :(得分:4)
SELECT t1.column1, COALESCE(t3.column2,t2.column2,t1.column2)
FROM t1
LEFT JOIN t2 on t1.column1=t2.column1
LEFT JOIN t3 on t1.column1=t3.column1
答案 1 :(得分:2)
请使用以下代码并尝试
select * from table1 where column1 not in ( select column1 from table2 union select column1 from table3)
union
select * from table2 where column1 not in (select column1 from table3)
union
select * from table3
答案 2 :(得分:1)
select x.col1,max(x.col2) from (
select * from #t1
union
select * from #t2
union
select * from #t3
)x
group by x.col1