cant reproduce.

test case:

from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base

metadata = MetaData()
Base = declarative_base(metadata=metadata)

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)

follows_table = Table('follows', metadata, Column('friend_id'))

Session = sessionmaker()()
subquery = Session.query(User.id).subquery()

q =
follows_table.select().where(not_(follows_table.c.friend_id.in_(subquery)))

print q


output:

SELECT follows.friend_id
FROM follows
WHERE follows.friend_id NOT IN (SELECT users.id
FROM users)





Mike Lewis wrote:
>
> Hi,
>
> This might be a noob question, but I am trying to reproduce the
> following sql query in SA
>
> select user_id, friend_id from follows  where friend_id not (in select
> id from users);
>
> First, I do this:
> subquery = Session.query(User.id).subquery()
>
> Then
> q = follows_table.select().where(not_(follows_table.c.friend_id.in_
> (subquery)))
>
> q turns into:
> SELECT follows.user_id, follows.friend_id
> FROM follows, (SELECT users.id AS id
> FROM users) AS anon_1
> WHERE follows.friend_id NOT IN SELECT users.id
> FROM users
>
>
> I'm not really sure where the first subselect comes from. Also, it
> isn't a valid query in postgres because the second SELECT users.id
> FROM users needs to be in parens.
>
> Am I missing something?
>
> Thanks,
> Mike
> >
>


--~--~---------~--~----~------------~-------~--~----~
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 
sqlalchemy+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to