下面的脚本返回单行子查询返回多行的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
);
非常感谢任何和所有的帮助和建议!
MD
答案 0 :(得分: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#
,则会有效。