You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by Remke Rutgers <Re...@brightalley.nl> on 2002/12/16 14:36:50 UTC

IN clause capable of adding a subquery?

Hi developers,

As far as I can tell, it is not possible to construct an IN clause with a
subquery using Torque.
I would like to be able to construct a query of the following form:
(just a simple example)

SELECT * FROM employees
WHERE employerid IN (
	SELECT id FROM employers
	WHERE country='USA'
)

I can achieve the desired result in the following way:
- first create the subquery
- retrieve the result list
- use the result list in the IN criteria for the outer query.

The number of elements in the IN clause is limited in Oracle however, so I
want to use a subquery instead of an explicit list.

Does it seem like a good enhancement to have a subquery construct for the
IN-clause?

Remke Rutgers
Technisch Consultant Knowledge & Learning

Bright Alley Knowledge & Learning
Media Park - Sumatralaan 45
Postbus 10 - 1200 JB Hilversum
Web www.brightalley.com
Telefoon direct (035) 6775668
Fax (035) 6774355
E-mail remke.rutgers@brightalley.nl
 

Re: IN clause capable of adding a subquery?

Posted by John McNally <jm...@collab.net>.
Sounds useful.  There are ways to add such a complex criteria, but not
very elegant and they pretty much boil down to constructing the string
by hand.  A patch would be welcome, though usage of such a construct
would limit the code to use in db's that support subqueries.  BTW, what
is the limit in oracle for the number of items in an IN list? 

john mcnally

On Mon, 2002-12-16 at 05:36, Remke Rutgers wrote:
> Hi developers,
> 
> As far as I can tell, it is not possible to construct an IN clause with a
> subquery using Torque.
> I would like to be able to construct a query of the following form:
> (just a simple example)
> 
> SELECT * FROM employees
> WHERE employerid IN (
> 	SELECT id FROM employers
> 	WHERE country='USA'
> )
> 
> I can achieve the desired result in the following way:
> - first create the subquery
> - retrieve the result list
> - use the result list in the IN criteria for the outer query.
> 
> The number of elements in the IN clause is limited in Oracle however, so I
> want to use a subquery instead of an explicit list.
> 
> Does it seem like a good enhancement to have a subquery construct for the
> IN-clause?
> 
> Remke Rutgers
> Technisch Consultant Knowledge & Learning
> 
> Bright Alley Knowledge & Learning
> Media Park - Sumatralaan 45
> Postbus 10 - 1200 JB Hilversum
> Web www.brightalley.com
> Telefoon direct (035) 6775668
> Fax (035) 6774355
> E-mail remke.rutgers@brightalley.nl
>  
> 
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>