From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
---|---|
To: | David Gauthier <davegauthierpg(at)gmail(dot)com> |
Cc: | Postgres General <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Can't seem to mix an inner and outer join in a query and get it to work right. |
Date: | 2020-06-30 01:10:24 |
Message-ID: | CAKFQuwayju34rpTYc+0-fnHSqjjAGCm3vV7VxcOyGP4ZKNnrAQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Monday, June 29, 2020, David Gauthier <davegauthierpg(at)gmail(dot)com> wrote:
>
> sqf_id | sqf_sl | as_cl |
> wa_id | type
>
> ----------------------------------------------------+-------
> --+---------+-------+-----------
>
> * arazhang_20.06.28-20:59:06_soc_navi24_main(at)4404799 | 4404957 | 4405363
> | 2772 | autosmoke*
>
> arazhang_20.06.28-20:59:06_soc_navi24_main(at)4404799 | 4404957 | 4405363
> | 2773 |
>
> arazhang_20.06.28-20:59:06_soc_navi24_main(at)4404799 | 4404957 | 4405363
> | 2774 |
>
> * bgregory_20.06.29-09:46:49_raphael_main(at)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(at)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.
From | Date | Subject | |
---|---|---|---|
Next Message | Marcin Barczynski | 2020-06-30 09:55:05 | Is there a way to execute queries in plpython without increasing txid after each query? |
Previous Message | Samuel Williams | 2020-06-30 00:50:22 | Re: libpq pipelineing |