0

A と B のような 2 つのテーブルがあります。テーブル A には列名があります。列の会社名を持つテーブル B。

これは私のコードです:

$query1 = "SELECT Name FROM A"; 
$query2 = "SELECT Company Name FROM B"; 

$statement1 = $connection->prepare($query1);    
$statement2 = $connection->prepare($query2);

$statement1->execute();
$statement2>execute();

while ( ($name) = $statement->fetchrow_array) {
    push (@Name, $name);    
} 
while ( ($companyname) = $statement->fetchrow_array) {
    push (@companyName, $companyname);  
}

open (FH, ">>Output.csv") or die "$!";

このようにcsvファイルにデータを書き込む必要があります

Name   CompanyName

xxx     yyyy

xxx     yyyy

xxx     yyyy

xxx     yyyy

xxx     yyyy
4

1 に答える 1

1

JOINこれは、SQL クエリで a を使用して行うことができます。SELECT2 つのステートメントを実行する必要はありません。

'SELECT a.Name, b.CompanyName FROM A a JOIN B b ON a.MailId = b.MailId'

完全な例を次に示します。

#!/usr/bin/perl
use strict; use warnings;
use DBI;

my $dbh = DBI->connect("put:dsn:here");
my $sth = $dbh->prepare('SELECT a.Name, b.CompanyName FROM A a JOIN B b ON a.MailId = b.MailId');

open my $fh, '>>', 'Output.csv' or die "Could not open file Output.csv: $!";
print $fh qq{Name\tCompanyName\n};

$sth->execute;
while (my $res = $sth->fetchrow_hashref) {
  print $fh qq{$res->{'Name'}\t$res->{'CompanyName'}\n};
}
close $fh;
于 2012-10-08T07:49:38.513 に答える