Re: [sqlalchemy] Re: Adding 'where' to query
If you're not doing it already, It may help to setup a playground/testing environment as you get familiar with SqlAlchemy. You can create a directory that has a copy-of (or can import) your model. Then create a series of scripts that create a new engine with echo turned on. This way you can play with the syntax directly over short scripts, and see the results + compiled sql, without the overhead of whatever app you're trying to build SqlAlchemy support into. -- 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.
Re: [sqlalchemy] Re: Adding 'where' to query
Thanks for the clarification. I'm suddenly getting no results at all when I add this filter, but at least now I know I'm doing the syntax right. Never a dull moment. :) On 3/14/16, Jonathan Vanasco wrote: > >> >> .filter(t1.c1=='hello', and_(t3.c1=='world')) >> > > The and_ Is wrong in this context. Everything in `filter` is joined by > "and" by default. You just want: > > .filter(t1.c1=='hello', t3.c1=='world') > > `and_` is usually used in a nested condition, often under an `or_`. > > -- > 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. > -- 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.
[sqlalchemy] Re: Adding 'where' to query
> > .filter(t1.c1=='hello', and_(t3.c1=='world')) > The and_ Is wrong in this context. Everything in `filter` is joined by "and" by default. You just want: .filter(t1.c1=='hello', t3.c1=='world') `and_` is usually used in a nested condition, often under an `or_`. -- 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.
[sqlalchemy] Re: Adding 'where' to query
I think I got it. I've been using .filter() for only joins thus far, so somehow had it in my head that it was only for joining. Of course, .filter(t1.c1=='hello') will work. I believe I'm using and_ correctly if I say: .filter(t1.c1=='hello', and_(t3.c1=='world')) I may have that and_ part wrong, but filter is the obvious solution to most of my question. On 3/14/16, Alex Hall wrote: > Hi all, > I had a link that was a great intro to querying, but of course, I > can't find it now. I need to add a couple conditions to my query. In > SQL, it might look like this: > > select * > from t1 join t2 on t1.c1==t2.c1 > join t3 on t3.c1==t1.c1 > where t1.c1 = 'hello' and t3.c3 = 'world' > > The joins I have, through query.filter(). It's the 'where' at the end > that I'm not certain about. I know I've read how to do this, but I > can't find that page anywhere. I also don't want to make it more > complex than it needs to be. For instance, using "select" and putting > that back into "query" when I don't need to. I've tried adding this > after the last call to filter(): > .where(item.itm_webflag != 'N', and_(item.itm_suspflag != 'Y'))\ > But of course, SA says that query has no attribute 'where'. > -- 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.