Re: Need help with array

Greg Meckes <[email protected]> Wed, 28 Nov 2007 12:11:21 -0800 (PST)
Newsgroups gmane.comp.db.mysql.perl
Message-ID <[email protected]>
Fundamentally, you should join these tables into one query:
SELECT P.PAT, F.DEPT, F.COURSE FROM PATENTES P, FINAL F WHERE P.PAT = F.PAT

...so you have to only loop once. Let the database handle the hard work.

Try that.

Greg
--- Armando Gomez <[email protected]> wrote:

> Hello all
> 
>  
> 
>  
> 
> I have a problem 
> 
>  
> 
> I have 2 tables on MySQL  in the first one call patentes I just need to get
> the patente's number that's a field call pat 
> 
> So I do a  query like this one:
> 
>  
> 
>  
> 
> my $dbh = DBI->connect("DBI:mysql:database=proyecto;host=localhost",
> 
>                          "root", "xyz123",
> 
>                          {'RaiseError' => 1});
> 
>    my $sth = $dbh->prepare("SELECT DISTINCT PAT FROM patentes");
> 
>  
> 
> $sth->execute();
>    while ((my @row) = $sth->fetchrow_array()) {
>    print "$row[0]\n";
>  
> So at this point I have all the patente's number on an array 
> Now, the other table call final I have all the data I need to work, what I
> need is to get all the 
> Data from final but I need to extract the data by pat (both tables have the
> same field) and at the same time 
> Create tables for each set of data that I get from using the the query
> something like this :
>  
>  
> 
>  
> 
> my $dbh = DBI->connect("DBI:mysql:database=proyecto;host=localhost",
> 
>                          "root", "xyz123",
> 
>                          {'RaiseError' => 1});
> 
>    my $sth = $dbh->prepare("SELECT DISTINCT PAT FROM patentes");
> 
>  
> 
> $sth->execute();
>    while ((my @row) = $sth->fetchrow_array()) {
>    print "$row[0]\n";
>  
>  
> 
> my $a_dbh = DBI->connect("DBI:mysql:database=proyecto;host=localhost",
> 
>                          "root", "xyz123",
> 
>                          {'RaiseError' => 1});
> 
>    my $a_sth = $a_dbh->prepare("SELECT * INTO $row[0] FROM final 
> 
>                                          WHERE pat = $row[0]");
> 
>  
>  
> }
>  
>  
> But every time I try it gives my an error message 
>  
> Can anyone help me to fix the problem thank you
>  
>  
>  
> This is an example of what I need
>  
> Table :  patente               Table : Final 
>  
> Pat    Name                    pat     dept      course
> 0001   John                    0001    SCIFI     MATH ADVANCE
> 0002   Jack                    0001    SCIFI     Quark study
> 0003   Peter                   0001    SCIFI     TIME STUDY
>                                0002    WAR       STRATEGIC PHILO.
>                                0002    WAR       COUNTERMEASURES
>                                0003    POLITICS  DIPLOMATIC RELATIONS
>                                0003    POLITICS  ADDRESS STUDY
>  
> So for pat 0001:
>  
> I need to create a table contains this:
>  
> Table : 0001
>  
> 0001    SCIFI     MATH ADVANCE
> 0001    SCIFI     Quark study
> 0001    SCIFI     TIME STUDY
>  
>  
> Table : 0002
>  
> 0002    WAR       STRATEGIC PHILO.
> 0002    WAR       COUNTERMEASURES
>  
>  
> Table : 0003
>  
> 0003    POLITICS  DIPLOMATIC RELATIONS
> 0003    POLITICS  ADDRESS STUDY
>  
>  
>  
> So at the end I have all these tables in the database
>  
> Patente
> Final
> 0001
> 0002
> 0003
>  
>  
> Thanks
>  
>  
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
> 


-- 
MySQL Perl Mailing List
For list archives: http://lists.mysql.com/perl
To unsubscribe:    http://lists.mysql.com/[email protected]