Oracle SQL correlated update

前端 未结 4 772
生来不讨喜
生来不讨喜 2021-01-21 23:45

I got three tables:

t1.columns: a,c
t2.columns: a,b
t3.columns: b,c,d

Now what I want is to update t1.c with t3.d. But I can\'t just update t1

4条回答
  •  野性不改
    2021-01-22 00:32

    UPDATE table1 t1
       SET t1.c = (select MAX(t3.d)
                   from table2 t2, table3 t3
                   where t2.b = t3.b and t1.a = t2.a)                                  
     WHERE EXISTS ( SELECT 1 FROM table2 t2, table3 t3 WHERE t1.c = t3.c and t1.a = t2.a);
    

提交回复
热议问题