小编Jay*_*mar的帖子

如果子查询在 Postgres 中返回多行,则跳过行

我想prod_replay_out根据 Postgres 中的子查询结果更新表。但是,子查询返回多行,但我想跳过这些行并根据子查询返回的单行更新表。

我已经提到链接子查询返回超过 1 行错误,但max()函数不适用于我的预期结果。您能否为我提供一些修改查询的建议?谢谢你。

prod_replay_out 有以下列:

卖家、买家、sender_tag、seller_tag、买家标签、isin、数量、in_msg_time、msg_type、cdsx_time

prod_replay_in 有以下列:

卖家、买家、sender_tag、seller_tag、买家标签、isin、数量、msg_type、cdsx_time

我尝试过什么?

请在下面找到更新sql:

更新sql:

update prod_replay_out O  
   set in_msg_id = 
        (Select id
           From prod_replay_in I
          Where I.msg_type   = 'CDST010'
            and I.seller     = O.seller
            and I.buyer      = O.buyer
            and I.sender_tag = O.sender_tag
            and I.seller_tag = O.seller_tag
            and I.buyer_tag  = O.buyer_tag
            and I.isin       = O.isin
            and I.quantity   = O.quantity
            and I.cdsx_time  = O.in_msg_time
            and I.cdsx_time::text like '2020-05-12%'
         ) 
where O.msg_type = 'CDST01C'
and O.cdsx_time::text like …
Run Code Online (Sandbox Code Playgroud)

sql postgresql select subquery sql-update

5
推荐指数
1
解决办法
305
查看次数

标签 统计

postgresql ×1

select ×1

sql ×1

sql-update ×1

subquery ×1