SELECT * FROM (SELECT [...] FROM
ENG_WORK_MGMT.FEE t0,
ENG_WORK_MGMT.FEE_TYPE t1,
ENG_WORK_MGMT.FEE_CYCLE
ENG_WORK_MGMT.AUTHORIZATION_DOCUMENT t3,
ENG_WORK_MGMT.PERMIT_DOCUMENT t4,
ENG_WORK_MGMT.AUTHORIZATION_DOCUMENT t5
WHERE
t0.FEE_TYPE_ID = t1.FEE_TYPE_ID
AND t0.FEE_ID = t2.FEE_CYCLE_ID
AND t2.FEE_CYCLE_ID = t3.INITIAL_FEE_CYCLE_ID(+)
AND t3.AUTHORIZATION_DOCUMENT_ID = t4.PERMIT_DOCUMENT_ID(+)
AND t2.FEE_CYCLE_ID = t5.RECURRING_FEE_CYCLE_ID(+)
AND ((t1.DESCRIPTION = ?)
AND ((t4.AGENCY_ID = ?)
OR (t4.AGENCY_ID = ?))))
Ok. I appear to be having some kind of unwanted optimization occurring.
There should be a line that says
AND t5.AUTHORIZATION_DOCUMENT_ID = t4.PERMIT_DOCUMENT_ID(+)
or maybe even
ENG_WORK_MGMT.PERMIT_DOCUMENT t6,
AND t5.AUTHORIZATION_DOCUMENT_ID = t6.PERMIT_DOCUMENT_ID(+)
with (t6.AGENCY_ID = ?)
On 8/17/06, Mike Kienenberger <mkienen..mail.com> wrote:
> Ok. I think I have Oracle8 style outer joins working. I'll take a
> shot at the other ones tomorrow.
>
> On 8/17/06, Andrus Adamchik <andru..bjectstyle.org> wrote:
> > Yes, actually there was some discussion before to use such syntax for
> > the inner joins as well. I am all for it (I guess we have to preserve
> > a backdoor for the old syntax in case some db does not support such
> > syntax).
> >
> > Andrus
> >
> > On Aug 17, 2006, at 5:17 PM, Mike Kienenberger wrote:
> >
> > > Even better link
> > >
> > > http://www.devx.com/dbzone/Article/17403/0/page/3
> > >
> > > Looks like we do away with WHERE clause joins altogether (at least for
> > > Oracle) and explicly join everything with ON statements.
> > >
> > > On 8/17/06, Mike Kienenberger <mkienen..mail.com> wrote:
> > >> This is somewhat helpful for the various kinds of joins.
> > >>
> > >> http://www.praetoriate.com/oracle_tips_outer_joins.htm
> > >>
> > >> Still looking for complex examples.
> > >>
> > >> On 8/17/06, Mike Kienenberger <mkienen..mail.com> wrote:
> > >> > On 8/17/06, Andrus Adamchik <andru..bjectstyle.org> wrote:
> > >> > > It would be nice if we could implement the translator using
> > >> standard
> > >> > > SQL syntax ("left outer join" instead of "(+)"), as it will
> > >> work on
> > >> > > most DB's including Oracle (starting from 9i), while the "(+)"
> > >> syntax
> > >> > > only works on Oracle (and is probably considered legacy syntax by
> > >> > > Oracle too).
> > >> > >
> > >> > > select
> > >> > > name,
> > >> > > department_name
> > >> > > from
> > >> > > employees e
> > >> > > left outer join
> > >> > > departments d
> > >> > > on
> > >> > > e.department_id = d.department_id;
> > >> > >
> > >> > > It will be somewhat harder to implement, but will solve the issue
> > >> > > once and for all.
> > >> >
> > >> > Well, sure, now you tell me :-)
> > >> >
> > >> > My Oracle Reference Book is Oracle8, so I didn't realize we had a
> > >> > better choice :-)
> > >> >
> > >> > I guess I need to see if I can find some documentation on this
> > >> format.
> > >> >
> > >> > The simple example is obvious, but what does it look like with more
> > >> > tables involved, some with more outer joins and some without?
> > >> >
> > >>
> > >
> >
> >
>
This archive was generated by hypermail 2.0.0 : Thu Aug 17 2006 - 21:52:54 EDT