because the available columns of the selectable is always treated based on the columns declared. the FROM/WHERE is like the "backend" to the query and the column clauses are the "public interface". heh.
On Oct 30, 2006, at 7:02 PM, Jonathan Ellis wrote: > > Heh, that was easy. > > I'm curious now, though, why it can't find the primary key with the > revised select you gave. (Works fine when I manually tell the mapper > what to use.) > > On 10/30/06, Michael Bayer <[EMAIL PROTECTED]> wrote: >> interesting ! that answers that question (i.e., the question >> above the >> assertion statement....) changed it to a "continue" in rev 2072. >> >> however, your mapping isnt going to work with those textual >> columns anyway >> since it cant intelligently construct an aliased select from it, >> you have to >> say: >> >> s = select([b.c.published_year, func.count('*').label('n')], >> from_obj=[b], >> group_by=[b.c.published_year]) >> >> i guess you already knew that. >> >> >> On Oct 30, 2006, at 6:19 PM, Jonathan Ellis wrote: >> >> >> from sqlalchemy import * >> >> >> >> >> e = create_engine('sqlite:///:memory:', echo=True) >> >> >> >> >> md = BoundMetaData(e) >> >> sql = """ >> >> CREATE TABLE books ( >> >> id integer PRIMARY KEY, -- auto-SERIAL in >> sqlite >> >> title text NOT NULL, >> >> published_year char(4) NOT NULL, >> >> authors text NOT NULL >> >> ) >> >> """ >> >> e.execute(sql) >> >> >> >> >> b = Table('books', md, autoload=True) >> >> s = select(["published_year", "count(*) as n"], from_obj=[b], >> >> group_by=[b.c.published_year]) >> >> s = s.alias('years_with_count') >> >> >> >> >> class YearWithCount(object): >> >> pass >> >> >> >> >> mapper = mapper(YearWithCount, s) >> >> session = create_session() >> >> q = session.query(YearWithCount) >> >> q.select_by(published_year='2006') >> >>> >> > > > -- > Jonathan Ellis > http://spyced.blogspot.com > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---