you'd have to use unions, or a custom SQL construct if your database happens to 
support the actual "FULL OUTER JOIN" syntax.


On Jul 12, 2010, at 9:26 AM, Daniel wrote:

> One last question, is it possible to do a full outer join?
> 
> Thanks,
> 
> Daniel
> 
> On Jul 11, 5:24 pm, Michael Bayer <[email protected]> wrote:
>> On Jul 11, 2010, at 5:40 AM, Daniel wrote:
>> 
>> 
>> 
>>>>> I've managed to fix it using sqalchemy.orm.outerjoin in conjunction
>>>>> with query's select_from function. Out of interest, why is the naming
>>>>> scheme different for these 2 functions?
>> 
>>>> which two names/functions are you referring to ?
>> 
>>> outerjoin and select_from, one seems to be lower case, the other,
>>> lower case with underscores. Is this because one is a function and the
>>> other is a method?
>> 
>> we use lowercase with underscores for all names, but the underscores aren't 
>> applied to words that colloquially tend to be one word like "outerjoin".
>> 
>> 
>> 
>>> unfortunately this:
>> 
>>> query(Vote).outerjoin((Vote, subquery.c.max_id==Vote.id))
>> 
>>> generates invalid SQL and this:
>> 
>>> query(Vote).outerjoin((subquery, subquery.c.max_id==Vote.id))
>> 
>>> has the join backwards, as ordering counts. I was trying things like:
>> 
>>> subquery.outerjoin((Vote,  subquery.c.max_id==Vote.id))
>> 
>>> This generates the rather indecipherable error "AttributeError:
>>> '_TextClause' object has no attribute 'foreign_keys'".
>> 
>> well in that last example subquery is not a Query() object, its an Alias 
>> construct.  It has a different API and you should work through the SQL 
>> Expression Tutorial to get a feel for expression constructs.   It probably 
>> shouldn't be making a text() construct out of a tuple, though.   ticket 1847
>> 
>>> If you try
>>> doing the same query, but don't generate a subquery first the error is
>>> "Not unique table/alias: 'votes'".
>> 
>>> But as I say I found a workaround using the orm.outerjoin function, so
>>> this is rather academic from my perspective.
>> 
>>> Thanks,
>> 
>>> Daniel
>> 
>>> --
>>> 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 
>>> athttp://groups.google.com/group/sqlalchemy?hl=en.
> 
> -- 
> 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.
> 

-- 
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