Hi everybody,
I have the following problem: There are two tables FOO and BAR that both have columns X and Y and a primary key. I want to fill the values X and Y of FOO with the values X and Y from BAR where FOO.key = BAR.key . There may be multiple rows from BAR with the same key so I simply select the first one. The query would look like
UPDATE foo f
SET ( x, y ) = ( SELECT *
FROM ( SELECT b.x, b.y
FROM bar b
WHERE f.key = b.key )
WHERE ROWNUM = 1 );
However, this doesn't work because the alias F is not known inside the nested subquery. If I remove the outer subquery ( the one with ROWNUM=1 ) it works fine. But I need to limit the result to a single row ( in the real application I sort the innermost query by date ). Why does Oracle forget the meaning of alias F within the nested subquery?
Pat