P><PRE
CLASS="PROGRAMLISTING"
>UPDATE t1 SET a = t1.a, b = t2.b FROM t2 WHERE t1.a = t2.a;</PRE
><P>

    and thus the executor run over the join will produce exactly the
    same result set as:

</P><PRE
CLASS="PROGRAMLISTING"
>SELECT t1.a, t2.b FROM t1, t2 WHERE t1.a = t2.a;</PRE
><P>

    But there is a little problem in
    <TT
CLASS="COMMAND"
>UPDATE</TT
>: the part of the executor plan that does
    the join does not care what the results from the join are
    meant for. It just produces a result set 