my $href1 = $dbh->selectall_hashref($sql1 "key"); my $href2 = $dbh2->selectall_hashref($sql2, "key2"); my $href3 = $dbh3->selectall_hashref($sql3, "key3"); foreach (sort(keys(%$href1))) { if ((exists($href2->{$_}{key2})) { $sql = "UPDATE data_set2"; $sql .= "set data = $href1->{$_}{data} where key2 = $_"; } else { $sql = "insert into data_set2 $href1->{$_}{data}"; } if ((exists($href3->{$_}{key3})) { $sql = "UPDATE data_set3"; $sql .= "set data = $href1->{$_}{data} where key3 = $_"; } else { $sql = "insert data_set3 $href1->{$_}{data}"; } }