I'm finally getting a bit more at ease with the more complex aspects of SQLAlchemy. But yet again, I still need some help. Now I'm trying to change the ordering from my mapper's default. My Signal mapper was defined to order by the signal_name (using an AssociationProxy). That has been working.
With the below new query, I'd like to order using an additional table's column: signal_type_size_order. u1_join = sql.join(db.signals, db.module_inputs, sql.and_(db.module_inputs.c.module_id == m.module_id, db.module_inputs.c.signal_id == db.signals.c.signal_id)) u2_join = sql.join(db.signals, db.module_outputs, sql.and_(db.module_outputs.c.module_id == m.module_id, db.module_outputs.c.signal_id == db.signals.c.signal_id)) sig_id_sel = sql.select([db.signals.c.signal_id], from_obj=[u1_join]). \ union(sql.select([db.signals.c.signal_id], from_obj=[u2_join])) # Construct a query to gather the signals from the above UNION sel = sql.select([db.signals, db.signal_types], db.signals.c.signal_id.in_(sig_id_sel), from_obj=[sql.join(db.signals, db.signal_types)], use_labels=True, order_by=[db.signal_types.c.signal_type_size_order, db.signals.c.signal_name]) res = model.session.query(domain_model.Signal).instances(sel.execute(), sql.class_mapper(domain_model.SignalType)) Everything is perfect up through the "sel" assignment. sel evaluates to the below query which returns a correct order from the sqlite3 CLI. Something is wrong with my "res" assignment line. (I am using 0.3.5 at least until my unit tests pass again.) SELECT signals.signal_id AS signals_signal_id, signals.signal_name AS signals_signal_name, signals.signal_description AS signals_signal_description, signals.signal_units_id AS signals_signal_units_id, signals.signal_type_id AS signals_signal_type_id, signals.signal_range AS signals_signal_range, signal_types.signal_type_id AS signal_types_signal_type_id, signal_types.signal_type_name AS signal_types_signal_type_name, signal_types.signal_type_ctype AS signal_types_signal_type_44f9, signal_types.signal_type_size_order AS signal_types_signal_type_e087, signal_types.signal_type_description AS signal_types_signal_type_f7d7 FROM signals JOIN signal_types ON signal_types.signal_type_id = signals.signal_type_id WHERE signals.signal_id IN (SELECT signals.signal_id AS signal_id FROM signals JOIN module_inputs ON module_inputs.module_id = ? AND module_inputs.signal_id = signals.signal_id UNION SELECT signals.signal_id AS signal_id FROM signals JOIN module_outputs ON module_outputs.module_id = ? AND module_outputs.signal_id = signals.signal_id) ORDER BY signal_types.signal_type_size_order, signals.signal_name --~--~---------~--~----~------------~-------~--~----~ 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?hl=en -~----------~----~----~----~------~----~------~--~---