Hi All,

I am seeing something I didn't expect using in_.

Here is a simple example, exactly as I expect:


In [13]: col = Trade.c.TradeId.in_([1,2])

In [14]: sel = select([col])

In [15]: print col
"Trade"."TradeId" IN (?, ?)

In [16]: print sel
SELECT "Trade"."TradeId" IN (?, ?) AS anon_1
FROM "Trade"


But now, if I use a subselect, I see a problem:



In [17]: col = Trade.c.TradeId.in_(select([Trade.c.TradeId]))

In [18]: sel = select([col])

In [19]: print col
"Trade"."TradeId" IN (SELECT "Trade"."TradeId"
FROM "Trade")

In [20]: print sel
SELECT "Trade"."TradeId" IN (SELECT "Trade"."TradeId"
FROM "Trade") AS anon_1
FROM "Trade", (SELECT "Trade"."TradeId" AS "TradeId"
FROM "Trade")


The column definition (col) is as expected, but the select definition
(sel) is strange.  It selects two things and generates n^2 rows.  How
can I get the select I expect:

SELECT "Trade"."TradeId" IN (SELECT "Trade"."TradeId"
FROM "Trade") AS anon_1
FROM "Trade"

thanks,
James

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