Hello all
This must be a silly problem, but I couldn't find the answer in this
group, so excuse me if I didn't search thoroughly enough.
I need to do multiple joins from a table to a single other table.
SQLAlchemy generates this statement:
SELECT transaction.id, attr1.value, attr2.value, attr3.value
FROM transaction
LEFT OUTER JOIN attribute AS attr1 ON attr1.transaction_id =
transaction.id,
transaction LEFT OUTER JOIN attribute AS attr3 ON attr3.transaction_id
= transaction.id,
transaction LEFT OUTER JOIN attribute AS attr2 ON attr2.transaction_id
= transaction.id
which fails in MySQL. It should read:
SELECT transaction.id, attr1.value, attr2.value, attr3.value
FROM transaction
LEFT OUTER JOIN attribute AS attr1 ON attr1.transaction_id =
transaction.id
LEFT OUTER JOIN attribute AS attr3 ON attr3.transaction_id =
transaction.id
LEFT OUTER JOIN attribute AS attr2 ON attr2.transaction_id =
transaction.id
How can I get SA to do what I want? The current query code looks like
this:
attr1 = attributes.alias('attr1')
attr2 = attributes.alias('attr2')
attr3 = attributes.alias('attr3')
s = select([transactions.c.id])
s = s.column(attr1.c.value)
s = s.column(attr2.c.value)
s = s.column(attr3.c.value)
s = s.select_from(transactions.outerjoin(attr1, attr1.c.transaction_id
== transactions.c.id))
s = s.select_from(transactions.outerjoin(attr2, attr2.c.transaction_id
== transactions.c.id))
s = s.select_from(transactions.outerjoin(attr3, attr3.c.transaction_id
== transactions.c.id))
What is it I'm doing wrong here?
Thanks a lot!
Bernhard
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---