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 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to