in reply to Optimization/Efficiency Question
Essentially, it would boil down to this:
my @audit_params = keys %$audits; my $audit_params_string = join ',', ('?') x @audit_params; my $audit_sql = <<__END_SQL__; SELECT AuditID, Referrals.1, Referrals.2, Referrals.3, Referrals.4, Referrals.5, Referrals.6, Referrals.7, Referrals.8, Referrals.9, Referrals.10, Referrals.11, Referrals.12, Referrals.13, Referrals.14, States.1 FROM Referrals INNER JOIN States On (Referrals.10 = States.1 +) WHERE AuditID IN ($audit_params_string) __END_SQL__ my $audit_sth = $dbh->prepare_cached($audit_sql) || die "Cannot prepar +e() '$audit_sql'\n"; $audit_sth->execute(@audit_params) || die "Cannot execute() '$audit_sq +l' with '@audit_params'\n"; my $insert_sql = <<__END_SQL__; INSERT INTO report_printing_table (1,2,3,4,5,6,7,8,9,10,11,12,13) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?) __END_SQL__ while (my @assign = $audit_sth->fetchrow_array) { my $audit_id = shift @assign; my $insert_sth = $dbh->prepare_cached($insert_sql) || die "Cannot +prepare() '$insert_sql'\n"; $insert_sth->execute($audit_id, @assign[0..11]) || die "Cannot exe +cute '$insert_sql' with '$audit @assign[0..11]'\n"; $insert_sth->finish; } $audit_sth->finish;
FYI: Code is completely untested.
------
We are the carpenters and bricklayers of the Information Age.
The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6
Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.
|
|---|