Hello

Is there a nice way to get the subquery object that relates to anon_1
in the below case so you can use it to filter on?

You can get it by q._joinpoint['_joinpoint_entity'] but that is
clearly private.

Thanks

David


class Employee(object):    pass

class Manager(Employee):    pass

class ManagerInfo(object):    pass

employees = Table('employees', metadata,
   Column('employee_id', Integer, primary_key=True),
   Column('type', String(30), nullable=False)
)

managers = Table('managers', metadata,
   Column('employee_id', Integer, ForeignKey('employees.employee_id'),
primary_key=True),
   Column('manager_info_id', Integer, ForeignKey('manager_info.id'),
primary_key=True),
)

manager_info = Table('manager_info', metadata,
   Column('id', Integer, primary_key=True),
   Column('data', String(30), primary_key=True),
)


mapper(Employee, employees, polymorphic_on=employees.c.type, \
    polymorphic_identity='employee')

mapper(Manager, managers, inherits=Employee,
polymorphic_identity='engineer')

mapper(ManagerInfo,
       manager_info,
       properties = dict(manager = orm.relation(Manager))
      )

session = Session()

q = session.query(ManagerInfo).join("manager")

print q

"""SELECT manager_info.id AS manager_info_id, manager_info.data AS
manager_info_data
FROM manager_info JOIN (SELECT employees.employee_id AS
employees_employee_id, employees.type AS employees_type,
managers.employee_id AS managers_employee_id, managers.manager_info_id
AS managers_manager_info_id
FROM employees JOIN managers ON employees.employee_id =
managers.employee_id) AS anon_1 ON manager_info.id =
anon_1.managers_manager_info_id"""


-- 
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.

Reply via email to