On Monday, June 29, 2020, David Gauthier <davegauthie...@gmail.com> wrote:

>
>                        sqf_id                       | sqf_sl  |  as_cl  |
> wa_id |   type
>
> ----------------------------------------------------+-------
> --+---------+-------+-----------
>
> * arazhang_20.06.28-20:59:06_soc_navi24_main@4404799 | 4404957 | 4405363
> |  2772 | autosmoke*
>
>  arazhang_20.06.28-20:59:06_soc_navi24_main@4404799 | 4404957 | 4405363
> |  2773 |
>
>  arazhang_20.06.28-20:59:06_soc_navi24_main@4404799 | 4404957 | 4405363
> |  2774 |
>
> * bgregory_20.06.29-09:46:49_raphael_main@1277530    | 1277949 |
> |       |*
> (4 rows)
>
>
> dvm.workarea_env on
> dvdb-#                   (sqf.sqf_runs.submitted_
> changelist=dvm.workarea_env.p4_changelist)
> dvdb-#                *inner join* dvm.dvm_events on
> dvdb-#                   (dvm.workarea_env.wa_id = dvm.dvm_events.wa_id
> and dvm.dvm_events.type = 'autosmoke')
> dvdb-# where sqf.sqf_Runs.submitted_shelvelist in (4404957,1277949);
>                        sqf_id                       | sqf_sl  |  as_cl  |
> wa_id |   type
> ----------------------------------------------------+-------
> --+---------+-------+-----------
>  arazhang_20.06.28-20:59:06_soc_navi24_main@4404799 | 4404957 | 4405363 |
>  2772 | autosmoke
> (1 row)
>
>
> Is there a way to retain the effect of that first outer join while
> enforcing that inner join ?
>

The quick non-testable answer is most likely.  I usually end up doing
trial-and-error and adding possibly unnecessary parentheses to force the
needed order of operations (or moving part of the join into an explicit
subquery, possibly using a CTE/WITH).  Right now it seems that the query is
forcing, via the inner join, a final output where the column
type=‘autosmoke’.  i.e., its doing the outer join first then the inner.
You seem to want the reverse.

David J.

Reply via email to