我有两张桌子。
MAIN_TABLE
SUB_ID SUB_ADDR_ID
47587 254875
47859 524858
47950 651681
47582 315788
54495 254879
Sub_master
SUB_NAME SUB_ID SUB_ADDR_ID PRIMARY
ABC 47587 254875 Y
ABC 47857 254876 N
CDE 47858 256587 Y
EFG 47859 524584 Y
EFG 47859 524858 N
GHI 54495 255485 Y
GHI 54495 254879 N
我必须从第一个表中选择所有记录,将SUB_ADDR_ID
与sub_master
表进行比较,以检查更新值是否为主要天气。如果不是主要的,我必须更新主表中的主要值。如何在单个查询中实现此目的。
答案 0 :(得分:0)
您可以在where
子句中进行过滤。以下是使用exists
:
update main_table mt
set <col> = <value>
where exists (select 1
from sub_master sm
where sm.sub_id = mt.sub_addr_id and
primary <> 'Y'
);