Hello -- I'm having some trouble forming a query. I'm using sqlalchemy 
0.9.9 with Postgres 9.3. I have 3 classes: Users, Responses, and Questions. 
Question has a one-to-many relationship to Responses. User has a 
one-to-many relationship to Responses. I'd like to find all questions that 
a user hasn't answered. So, basically, I'm trying to find all questions 
where none of the question's response's user ID == X. I spent the evening 
banging my head against a wall, so I figured it was time to ask the 
experts. Below I've included my model, greatly simplified, followed by some 
of my "closest" incorrect attempt. What is the magic query to find all of 
the questions that a user hasn't answered?

Thanks so much for your time, 
Mallory

class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    responses = db.relationship('Response', backref='user', lazy='dynamic')
    
class Response(db.Model):
    __tablename__ = 'responses'
    id = db.Column(db.Integer, primary_key=True, index=True)
    question_id = db.Column(db.Integer, db.ForeignKey('questions.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))

class Question(db.Model):
    __tablename__ = 'questions'
    id = db.Column(db.Integer, primary_key=True, index=True)
    responses = db.relationship('Response', backref='question', 
lazy='dynamic', cascade='all,delete')


My most recent failed attempt:
Question.query.join(Response).join(User).filter(sqlalchemy.not_(Question.responses.any(User.id
 
== 4))).all()

Thanks again!

-- 
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 http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to