首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

求教多表联系关系批量更新

2012-12-23 
求教多表关联批量更新现有 A,B,C三个表,现在要做的就是把 B表中start_time字段,减去C表中的start_time字段

求教多表关联批量更新
现有 A,B,C三个表,现在要做的就是把 B表中start_time字段,减去C表中的start_time字段,然后填入到A表的relative_starttime字段中去,其中B表通过C.ID关联,即 b.c_id = c.id,A表与B表能过B的ID关联(A.B_ID = B.ID),
其中B表的start_time要在系统时间的一个小时之内,请问各位大神,这个SQL该怎么写?
[最优解释]


MERGE INTO A 
  USING (SELECT B.ID,B.start_time-C.start_time tmp_time FROM B,C WHERE B.c_id = C.id ) TMPB
  ON (A.ID = TMPB.ID)
WHEN MATCHED THEN 
  UPDATE
    SET A.relative_starttime = TMPB.tmp_time

[其他解释]
UPDATE A 
SET A.relative_starttime=(SELECT B.start_time-C.start_time FROM B,C WHERE b.c_id = c.id) 
WHERE A.ID IN (SELECT B.ID FROM B);
[其他解释]
好像不行啊。。。
[其他解释]
引用:
SQL code


MERGE INTO A 
  USING (SELECT B.ID,B.start_time-C.start_time tmp_time FROM B,C WHERE B.c_id = C.id ) TMPB
  ON (A.ID = TMPB.ID)
WHEN MATCHED THEN 
  UPDATE
    SET A.relative_startt……


貌似是行的

热点排行