As the title says, I'd like to filter a related table without joining the 
table (I don't want to mess up my pagination).  Is there a way to enforce 
the from clause?  My SQL is a bit rusty but I'm pretty sure its possible.

On SQLAlchemy==1.2.12:

from sqlalchemy.ext.declarative import declarative_base

import sqlalchemy as sa


Model = declarative_base()


class Person(Model):
    __tablename__ = 'person'

    id = sa.Column(sa.Integer, primary_key=True)


class Note(Model):
    __tablename__ = 'note'

    id = sa.Column(sa.Integer, primary_key=True)
    person_id = sa.Column(sa.Integer, sa.ForeignKey('person.id'))

    person = sa.orm.relationship('Person', backref='notes')


engine = sa.create_engine('sqlite://')
Model.metadata.create_all(engine)


session_cls = sa.orm.sessionmaker(bind=engine)
session = session_cls()


person_query = session.query(Person).filter(Person.id == Note.person_id, 
Note.id == 1)
print(person_query)

"person_query" is:

SELECT person.id AS person_id 
FROM person, note 
WHERE person.id = note.person_id AND note.id = ?

-- 
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.

Reply via email to