我必须对t1和t2进行统计:
t1: t2:
|ID | Value | |ID | Value |
|---|-------| |---|-------|
| 1 | AAA | | 1 | AAA |
| 2 | BBB | | 2 | KKK |
| 3 | CCC | | 3 | ZZZ |
| 4 | DDD | | 9 | QQQ |
| 5 | EEE | |---|-------|
|---|-------|
As a relust i need to get T3 that looks like this:
|ID | Value |
|---|-------|
| 1 | AAA |
| 2 | KKK |
| 3 | ZZZ |
| 4 | DDD |
| 5 | EEE |
|---|-------|
我是sql的新手,我能得到的最好的是:
SELECT
new_TT.ID,
(SELECT value FROM SCV WHERE ID=new_TT.id) AS value
FROM
T new_TT
但它只会返回t1中的现有值。
另一种解决方案满足了我的需要,但只有少量数据才能满足我的需要,而我需要使用lagre。
解决方案分为两部分:
创建新表t3并复制t1中的所有数据
替换t3中的行,其中t3.id = t2.id
答案 0 :(得分:1)
您可以将coalesce()
函数与left join
一起使用
create table t3 as
select t1.ID, coalesce(t2.value,t1.value) as value
from t1
left join t2 on t1.ID=t2.ID