Hi Simon.
I did indeed get it working in the end. I did not know about isOuter=True. 
- That's a new one. I used the .outerjoin and was able to chain join 
followed by multiple outerjoins.
Many thanks once again for extra titbits of info. Much appreciated.
Regards, Jeremy

On Friday, 9 February 2018 17:26:33 UTC, Simon King wrote:
>
> As you say, .join() produces an inner join by default. You can specify 
> isouter=True to get a left outer join (or call the .outerjoin method 
> instead), and full=True to get a full outer join. I think you'd get a 
> cross join if you just didn't call the .join() method at all. 
>
> Simon 
>
> On Fri, Feb 9, 2018 at 4:52 PM, Jeremy Flowers 
> <jeremy.g...@gmail.com <javascript:>> wrote: 
> > I'm wondering if this is part of the secret sauce: 
> > http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.join 
> > Also I guess cross-join may be another join type. 
> > JOIN is INNER by default.. 
> > https://stackoverflow.com/a/19646594/495157 
> > 
> > 
> > On Friday, 9 February 2018 16:03:03 UTC, Jeremy Flowers wrote: 
> >> 
> >> I've got a domain model out of sqlacodegen. 
> >> I need to do a SQL a join between two tables, with no inferred 
> >> foreign-keys in the database I'm working on. 
> >> Consequently there isn't a relationship defined for the specific 
> columns I 
> >> need to join 
> >> 
> >> 1) I need a INNER JOIN for the first. 
> >> 2) But later I need multiple LEFT JOINs on other tables, I've not yet 
> >> introduced to the code.. 
> >> 
> >> (1) How would I go about doing the INNER JOIN first?: (What is the 
> >> default? left, inner etc?) 
> >> 
> >> print(session.query(Jobmst.jobmst_type, 
> >>                     Jobmst.jobmst_name, 
> >>                     Jobmst.jobmst_prntname, 
> >>                     Jobmst.jobmst_prntid, 
> >>                     Jobmst.jobmst_evntoffset, 
> >>                     Jobmst.evntmst_id, 
> >>                     Jobdtl.jobdtl_proxy, 
> >>                     Jobdtl.jobdtl_proxy2, 
> >>                     Jobdtl.jobdtl_inhagent, 
> >>                     Jobdtl.jobdtl_inhevent, 
> >>                     Jobdtl.jobdtl_cmd, 
> >>                     Jobdtl.jobdtl_params, 
> >>                     Jobdtl.jobdtl_fromtm, 
> >>                     Jobdtl.jobdtl_untiltm, 
> >>                     Jobdtl.jobdtl_timewin, 
> >>                     Jobdtl.jobdtl_interval, 
> >>                     Jobdtl.jobdtl_intervalcnt 
> >>                    ).join(Jobdtl, Jobmst.jobmst_id==Jobdtl.jobdtl_id,) 
> >>                     .first()) 
> >> 
> >> 
> >> Why doesn't join have another parameter where I can say, 'inner', 
> 'left', 
> >> etc? 
> >> Per the join types listed here: 
> >> https://www.w3schools.com/sql/sql_join.asp 
> >> 
> >> I've seen stuff here 
> >> 
> >> 
> http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.join.params.isouter
>  
> >> And here... 
> >> 
> >> 
> http://docs.sqlalchemy.org/en/latest/orm/loading_relationships.html#sqlalchemy.orm.joinedload
>  
> >> But if I understand it correctly I'd need a relationship defined for 
> >> joinedload. 
> >> 
> >> Can someone advise. Thanks 
> >> 
> > -- 
> > SQLAlchemy - 
> > The Python SQL Toolkit and Object Relational Mapper 
> > 
> > http://www.sqlalchemy.org/ 
> > 
> > To post example code, please provide an MCVE: Minimal, Complete, and 
> > Verifiable Example. See http://stackoverflow.com/help/mcve for a full 
> > description. 
> > --- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "sqlalchemy" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an 
> > email to sqlalchemy+...@googlegroups.com <javascript:>. 
> > To post to this group, send email to sqlal...@googlegroups.com 
> <javascript:>. 
> > Visit this group at https://groups.google.com/group/sqlalchemy. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to