create table tbl_names ( id_name INT NOT NULL auto_increment, str_name VARCHAR(255), ); create table tbl_ipaddresses ( str_ipaddress VARCHAR(255), id_name INT, ); #### @names = qw( firstname secondname ); @ips = ( "123.132.123.121" , "198.21.252.2" , "123.123.123.132"); $sql_statement = qq|INSERT INTO tbl_names (str_name) VALUES (?)|; $sth = $dbh->prepare($sql_statement); $sql_statement = qq|INSERT INTO tbl_ipaddresses (id_name, str_ipaddress) VALUES (?,?)|; $sth2 = $dbh->prepare($sql_statement); foreach $name (@names){ $rv = $sth->execute($name); my $id_name = $sth->{'insert_id'}; foreach $ip (@ips){ $rv = $sth2->execute($id_name, $ip); } } #### $sql_statement = qq|select str_ipaddress from tbl_ipaddresses, tbl_names where tbl_names.str_name = 'firstname' and tbl_names.id_name = tbl_ipaddresses.id_name|; $sth = $dbh->prepare($sql_statement); $rv = $sth->execute; while ( ($ipaddress) = $sth->fetchrow_array ){ # do whatever }