1

下面的脚本返回单行子查询返回多行的01427错误。rownum<2 更新了几行。显而易见的解决方案是使用 pl/sql 循环,但我正在尝试确定是否存在仅 SQL 的解决方案。

UPDATE ldl.clens le
   SET master_song_id =
      (SELECT cf.song_id#
         FROM lt.master_songs cf
        WHERE     le.lot_id = cf.lot_id
              AND song_id#_fk =
                     (SELECT msc_songs.song_id#
                        FROM lt.msc_songs
                       WHERE msc_songs.song_name = le.song_name)
---- AND ROWNUM < 2
);

任何和所有的帮助和建议都非常感谢!

医学博士

4

1 回答 1

0

我不确定我是否掌握了表格之间的关系,但如果我掌握了,您可以使用以下内容UPDATE

UPDATE ldl.clens le
   SET master_song_id =
      (SELECT cf.song_id#
         FROM lt.master_songs cf
          JOIN lt.msc_songs ms ON (cf.song_id#_fk = ms.song_id#)
         WHERE
              ms.song_name = le.song_name
          AND le.lot_id = cf.lot_id)
;

如果msc_songs.song_name并且master_songs.lot_id会给你一个独特的master_songs.song_id#.

于 2013-11-06T18:01:23.957 回答