求一条SQL语句:主表左联子表,只取对应子表第一条记录某值并在主表更新

来源:百度知道 编辑:UC知道 时间:2024/06/08 23:38:02
求一条SQL语句:主表左联子表,只取对应子表第一条记录某值并在主表更新
例如:
主表:TABLE1(number,a1,b1,c1)
子表:TABLE2(number,father,a2,b2,c2)
主表与子表的关联:TABLE2.father=TABLE1.number
TABLE1中的数据为
number a1 b1 c1
1 11 11
2 12 12

TABLE2中的数据为:
number father a2 b2 c2
1 1 21 21 21
2 1 22 22 22
3 1 23 23 23
4 2 24 24 24
5 2 25 25 25
6 2 26 26 26

查询结果为:
a1 b1 a2 b2 c1
11 11 21 21 21
12 12 24 24 24

(子表可以按照number排序取第一条),现需要更新主表,使C1值等于其关联子表第一条记录的C2值,没有则不更新。
还忘赐教。
数据库为DB2。

update TABLE1 set c1 = B.c2
from TABLE1 A,TABLE2.B where B.father=A.number

为什么要一条sql更新完?
用游标做个循环,就搞定了.
就算能一条SQL搞定,这个执行效率简直不敢恭维!!