Thanks for the reply Mike. SQLAlchemy is a fantastic ORM and you've done an amazing job with it.
You're suggestion hasn't fixed my issue though, perhaps there's something fundamental I'm misunderstanding? Here is the query I'm testing: r_product_category_history_list = db.Model.metadata.tables['r_product_category_history_list'] query = db.session.query(rProduct, r_product_category_history_list.c.time_updated)\ .join(rProductCategoryHistory)\ .order_by(desc(rProductCategoryHistory.time_updated)) It should be returning two rProduct's but it only returns one On Tuesday, June 20, 2017 at 10:20:51 AM UTC-7, Mike Bayer wrote: > > > > On 06/20/2017 01:04 PM, Ryan Weinstein wrote: > > > > > > On Tuesday, June 20, 2017 at 9:53:10 AM UTC-7, Jonathan Vanasco wrote: > > > > you're almost there. > > > > flip a few lines around to rewrite the query to select from > > product... e.g. something like > > > > SELECT r_product_list.* FROM r_product_list > > JOIN r_product_category_history_list on > > r_product_list.r_id=r_product_category_history_list.r_id > > JOIN r_product_reviews_historical_details_list on > > r_product_list.most_recent_historical_reviews_id= > r_product_reviews_historical_details_list.id > > <http://r_product_reviews_historical_details_list.id> > > > > then it should be clear how to convert to the sqlalchemy syntax. > > > > > > The problem is when I do that it doesn't return the correct number of > > instances. I need one instance of rProduct per entry into > > r_product_category_history_list. > > the ORM deduplicates full entities (e.g. mapped objects) when returned > from a Query object. This is so that eager loading schemes don't return > dupes. If you need each object associated with something distinct, add > that to the query: > > session.query(Product, product_category_list.some_column) > > > > > > > -- > > 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:> > > <mailto:sqlalchemy+unsubscr...@googlegroups.com <javascript:>>. > > To post to this group, send email to sqlal...@googlegroups.com > <javascript:> > > <mailto: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.