http://www.perlmonks.org?node_id=655042

Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks,
Please guide me to use 'IN' clause while using Class::DBI. I want to add IN condition in my existing query that is something like
$schema->resultset('Artist')->search( year => 1990 );

Replies are listed 'Best First'.
Re: using 'IN' clause in Class::DBI
by fenLisesi (Priest) on Dec 05, 2007 at 10:13 UTC
Re: using 'IN' clause in Class::DBI
by oha (Friar) on Dec 05, 2007 at 09:48 UTC
    given a statement like
    select * from mytable where id=1
    if you want to extend your search to more then one id, but a list obtained from another query, you can
    select * from mytable where id in (select id from table2)
    As you can see, it's related to your db and not all dbms support it.

    If i understood well, you want to "narrow" your search to a limited subset of artists, having no more data i'll write an example:

    select * from album where artist in (search artistId in artists where +year = 1990)
    Note that you can convert the IN clause with a INNER JOIN:
    select album.* from album a, artists b where a.artist = b.artistId and + b.year = 1990
    HTH

    Oha

Re: using 'IN' clause in Class::DBI
by perrin (Chancellor) on Dec 05, 2007 at 12:33 UTC
    Is year a column in your artist table, or is it in a different table?