when you say a.union(b.union(c)) there is a predictable ordering to  
those.  its confusing for sure but its not unlike when you string  
together things like "A JOIN B JOIN C" etc.

for now I would recommend experimenting with the underlyting  
selectable object used by a union so you can get a feel for it (we  
can then add on intersect() and except_clause() methods at some point)

from sqlalchemy.sql import CompoundSelect

a = mytable.select()
b = select(<someotherstuff>)
c = ....

q = CompoundSelect('UNION', a, b)
x = CompoundSelect('INTERSECT', q, c)
y = CompoundSelect('EXCEPT', x, d, g, h, i)

y.execute()


On Jun 13, 2006, at 9:58 PM, Charles Duffy wrote:

> I'm looking at writing a TurboGears-based application where I'll have
> cause to use not only UNION but also INTERSECT and EXCEPT. The
> SQLAlchemy documentation appears to indicate that only UNION is  
> supported.
>
> Is there any chance of INTERSECT or EXCEPT showing up in future  
> versions
> of SQLAlchemy? If a patch should be straightforward to write, I  
> wouldn't
> mind trying my hand at one.
>
>
> Also -- whereas with UNION alone there's little need to control  
> nesting
> order, when one adds INTERSECT and EXCEPT in it can be important to
> specify that one wants (A UNION B) INTERSECT C as opposed to A  
> UNION (B
> INTERSECT C); at least in PostgreSQL, INTERSECT binds tighter. I  
> imagine
> that the natural syntax for combining UNIONs and INTERSECTs would be
> something like the following:
>
> users.select(
>    users.c.city == 'Austin'
> ).union(
>    users.select(users.c.city == 'Houston')
> ).intersect(
>    users.select(users.c.age < 17)
> )
>
> ...however, I don't see a plain way to clarify whether the  
> intersect or
> the union should happen first.
>
>
>
> _______________________________________________
> Sqlalchemy-users mailing list
> Sqlalchemy-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users



_______________________________________________
Sqlalchemy-users mailing list
Sqlalchemy-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users

Reply via email to