Thank you for the answer!

Does it have any performance differences between the 3 manners?
Which one could be the fastest if I have a lot of nested joins to do
with other tables?

Thanks

On Jan 23, 4:30 pm, Michael Bayer <[EMAIL PROTECTED]> wrote:
> On Jan 23, 2008, at 3:28 PM, MattQc wrote:
>
>
>
> > Object query returns an empty set:
>
> > In <3>: jLane = tblspotbandsol.outerjoin(tbllane,
> > tbllane.c.laneid==tblspotbandsol.c.laneid)
> > In <4>: mapper(LaneClass,jLane)
> > Out<4>: <sqlalchemy.orm.mapper.Mapper object at 0xb36f382c>
> > In <5>:
> > Session.query(LaneClass).filter(LaneClass.spotbandsolid==32978).all()
>
> in this case the mapper will attept to compute the "natural" primary
> key amongst all the columns that are being mapped; by default, it will
> be the primary key columns of "tblspotbandsol" combined with that of
> "tbllane".  If a row does not contain non-null columns for all primary
> key columns, no instance will be returned.  You can see this happening
> if you turn on sqlalchemy.orm.mapper=DEBUG logging.
>
> The three ways to modify this behavior are to specify
> "allow_null_pks=True" on the mapper so that a primary key with some
> NULL columns is accepted as a valid primary key, to specify the
> "primary_key=[<some columns>]" option to the mapper which indicates
> which columns should be counted as part of the primary key and
> overriding the auto-calculation of such, or to remove the primary key
> columns of "tbllane" from the columns clause of the selectable which
> you are mapping to which has a similar effect to providing  an
> explicit primary key argument.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to