I'm sorry this took me so long - but thank you. This is actually much cleaner syntax and I like it.
Thanks for all you do! On Mon, Aug 12, 2019 at 8:44 PM Mike Bayer <[email protected]> wrote: > > > On Mon, Aug 12, 2019, at 5:49 PM, Michael P. McDonnell wrote: > > Hey team - > > I'm trying to figure out how to basically rewrite this: > SELECT > count(task.id) > FROM task > JOIN round on task.game_id = round.game_id > JOIN tournament ON round.tournament_id = tournament.id > WHERE tournament.id = '626aeaa7-783b-415c-85f9-5222d9c95973'; > > As this: > total_tasks = column_property( > select([func.count(Task.id)]) > .outerjoin(Round, Task.game_id == Round.game_id) > .filter(round.tournament_id == tournament_id) > .correlate_except(Task)) > > I keep getting the following error: > AttributeError: 'Join' object has no attribute 'filter' > > Which I *know* tells me that a join object has no method called "filter", > but there's also no "where", "filter_by" etc... > > What painfully obvious thing am I missing? > > > hi - > > you're doing a classic mistake-ish thing that will be less possible in 1.4 > and the longer term plan is by 2.0 all confusion will be eliminated, which > is that you are using the Core select() construct in the way you would use > the ORM Query object, when in fact these are two totally different objects > that work very differently. > > To do a join (and filter) with Core select(): > > from sqlalchemy import outerjoin, select > j = outerjoin(Task, Round, Task.game_id== Round.game_id) > stmt = > select([func.count(..)]).select_from(j).where(...).correlate_except(...) > > basically: > > 1. do not call select.join() or select.outerjoin(). These methods are 100% > useless, unfortunately, and are gone in 1.4. use > select.select_from(join(A, B, onclause)). > > 2. select() doesn't have filter(), it has where(). > > > For now, as we are still in SQLAlchemy medieval times, background on how > to use select() is at > https://docs.sqlalchemy.org/en/13/core/tutorial.html#selecting > > > > -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/ad3b421d-bf9f-43bd-bd1a-061136572200%40googlegroups.com > <https://groups.google.com/d/msgid/sqlalchemy/ad3b421d-bf9f-43bd-bd1a-061136572200%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/d465c941-6441-46d3-8bbe-315d857ff7bb%40www.fastmail.com > <https://groups.google.com/d/msgid/sqlalchemy/d465c941-6441-46d3-8bbe-315d857ff7bb%40www.fastmail.com?utm_medium=email&utm_source=footer> > . > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/CAHmCLHreC7-U2p%2BTh%2B4m3%3DugLKwys%3DTG8B6_M6raDtfYSdMWiQ%40mail.gmail.com.
