Julio César Gázquez <[email protected]> wrote:

> Hi.
> 
> I have an inheritance hierarchy on the form, C inherits B (with single table 
> inheritance), B inherits A (with joined table inheritance).
> 
> The next query works perfectly:
> 
> session.query(C)\
>    .join(C.related_objects)
>    .filter( ... )  # Unrelated filtering conditions
> 
> as the resulting SQL does the join between the tables for A.__tablename__ and 
> B.__tablename__, and filters B.__tablename__ using the discriminator column 
> in the WHERE.
> 
> However, I need to do this:
> 
> session.query(func.sum(RelatedTable.value))\
>    .select_from(C)\
>    .join(C.related_objects)\
>    .filter( ... )\  # Unrelated filtering conditions
>    .one()
> 
> While the select_from() still does correctly the A/B join, the filtering 
> condition is missing, so select_from(C) becomes the same as select_from(B).

did you try 1.0.0b1 for this?   The mechanics for single-table have been 
improved in this regard.




> 
> I'm getting the right result using a explicit filter condition 
> "filter(C.discriminator == C_DISCRIMINATOR)", but I guess I'm missing 
> something.
> 
> Is this a kind of special case where some extra syntax is required? I didn't 
> find anything relevant in the docs, neither in inheritance nor select_from() 
> parts.
> 
> Thanks in advance.
> 
> Julio.
> 
> -- 
> 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 [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to