On Jan 15, 2008, at 5:48 AM, Alexandre Conrad wrote:

>
> Okay, my fault. I was editing the wrong code in my test case  
> concerning
> the "select_from" alternative.
>
> Let's go back to that new feature from r4060 you've proposed,  
> concerning
> joins directly from classes. Attached is my updated test case.
>
> If I wanted to join only from classes, I'd suppose we'd have the
> following syntax:
>
> Media.query.join([Media.catalog, CatalogChannel.id,
> CatalogChannel 
> .channel 
> ]).filter(CatalogChannel.c.id_channel==playlist.id_channel).all()
>
> This would mean join Media on Catalog, join CatalogChannel on Catalog,
> join CatalogChannel on Channel; WHERE  
> CatalogChannel.c.id_channel==foo.
>
> This is just an idea, but here the join with "CatalogChannel.id" would
> mean that is need to figure out that PK is also FK to Catalog.
>

from my understanding , you dont really want to join to CatalogChannel  
at all as a Query-level join, you just want to filter on the  
"id_channel" column as it occurs under the arrangement of Media's  
"catalog" items.  Query.join is meant only for entity-to-entity  
joins.  In this case, Media->catalog is the only entity level join you  
need.

on my workstation here I have it working like such:

select_table = catalog_table.outerjoin(catalog_channel_table)
catalog_mapper = mapper(Catalog, catalog_table,  
select_table=select_table, polymorphic_on=catalog_table.c.type,  
polymorphic_identity="catalog",
     properties={
         "medias":relation(Media,
                      backref="catalog",
                      cascade="all, delete-orphan",
                  ),
     },
)

print  
Media 
.query 
.join 
('catalog').filter(CatalogChannel.id_channel==playlist.id_channel).all()

the commit still needs some cleanup.  and I think it will also work in  
trunk if you use an aliased select for that select_table right now.



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
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