本人想从一张表中的六个字段的值插入到另外一张表中的六个字段,能否用一条SQL语句解决?
想更新EHU_AWB中的 MAWB_NO,FLIGHT_NO,ETD,ETD_TIME,ETA,ETA_TIME,这六个字段的值,他们分别是从
EHU_CNL这张表中查询出来的MAWB_NO,FLT_NO,FLT_DATE,FLT_TIME,ETA_DATE,ETA_TIME值。
两张表的关联字段为CNL_NO
EHU_AWB表的主键是AWB_NO,现在想更改AWB_NO值为XXX的某条记录中的六个字段,六个字段是根据CNL_NO在EHU_CNL中查询的结果。求解一条SQL。
想更新EHU_AWB中的 MAWB_NO,FLIGHT_NO,ETD,ETD_TIME,ETA,ETA_TIME,这六个字段的值,他们分别是从
EHU_CNL这张表中查询出来的MAWB_NO,FLT_NO,FLT_DATE,FLT_TIME,ETA_DATE,ETA_TIME值。
两张表的关联字段为CNL_NO
EHU_AWB表的主键是AWB_NO,现在想更改AWB_NO值为XXX的某条记录中的六个字段,六个字段是根据CNL_NO在EHU_CNL中查询的结果。求解一条SQL。
update EHU_AWB ea
set (MAWB_NO,FLIGHT_NO,ETD,ETD_TIME,ETA,ETA_TIME)=
(select MAWB_NO,FLT_NO,FLT_DATE,FLT_TIME,ETA_DATE,ETA_TIME
from EHU_CNL ec where ea.AWB_NO=ec.CNL_NO and AWB_NO='xxxx')
where exists
(select 1 from EHU_CNL ec where ea.AWB_NO=ec.CNL_NO and AWB_NO='xxxx')
2.两帐表通过CNL_NO关联,是一对一的关系吗?
3.CNL_NO在EHU_CNL中查询的结果,查询条件是什么呢?
--------豁然大悟
update EHU_AWB a
set (MAWB_NO, FLIGHT_NO, ETD, ETD_TIME, ETA, ETA_TIME) = (select MAWB_NO,
FLT_NO,
FLT_DATE,
FLT_TIME,
ETA_DATE,
ETA_TIME
from EHU_CNL b
where a.CNL_NO =
b.CNL_NO
and b.AWB_NO =
'xxxx')
when matched then
update set a.MAWB_NO=b.MAWB_NO,a.FLIGHT_NO=b.FLT_NO,
a.ETD=b.FLT_DATE,a.ETD_TIME=b.FLT_TIME,a.ETA=b.ETA_DATE,a.ETA_TIME=b.ETA_TIME
where a.AWB_NO=XXX
select * from EHU_AWB a, EHU_CNL b where a.CNL_NO = b.CNL_NO该查询结果或许
不止一条记录,而EHU_AWB表的主键是AWB_NO,说明select * from EHU_AWB where AWB_NO=
xxx是只有一条记录的,这个时候多条记录无法插入一条特定的记录。
如果修改一下EHU_AWB表中AWB_NO和EHU_CNL中CNL_NO关联,则
update EHU_AWB
set (MAWB_NO,FLIGHT_NO,ETD,ETD_TIME,ETA,ETA_TIME)=
(select MAWB_NO,FLT_NO,FLT_DATE,FLT_TIME,ETA_DATE,ETA_TIME from EHU_CNL
where cnl_no = xxx)
where AWB_NO = xxx