I've had similar problems but tackled them using the lower-level set_sql method in Class::DBI (views weren't available):
# search for keys in a given building,
# issued to persons with a given status
IssuedKey->set_sql(building_id_person_status =>
'SELECT id FROM IssuedKey, Person
WHERE Person.person_id=IssuedKey.person_id
AND IssuedKey.building_id=? AND Person.status=?');
my (@keys) = IssuedKey->search_building_id_person_status(
$building, $status);
The example above is not very general because it only searches those specific fields, but sometimes it is all you need. |