my $orf_id = $pt->get("$i,2"); $dbh->do(q{ CREATE TEMPORARY TABLE IF NOT EXISTS moo(id INT UNSIGNED, escore DOUBLE, org_id MEDIUMINT)}); $sql1 = q{ INSERT INTO moo #First of two staements to get all hits for orf SELECT id2, escore, org_id2 FROM blast, protein WHERE id1 = id AND text_id = ? }; $sth2 = $dbh->prepare($sql1); $sth2->execute($orf_id); $sql1 = q{ INSERT INTO moo # Second of two statements to get all hits for orf SELECT id1, escore, org_id1 FROM blast, protein WHERE id2 = id AND text_id = ? }; $sth2 = $dbh->prepare($sql1); $sth2->execute($orf_id); $sql1 = q{ SELECT DISTINCT min(escore) as escore, org_id # Get min(escore) for each org = Main results FROM moo GROUP BY org_id };