Ciao,
scusa se ti rispondo solo ora ma ieri ho avuto un lavoro urgente e non ho potuto seguire il forum.
Avevo commesso un piccolo errore, ora ho avuto il tempo di testare il codice seguente e ti assicuro che sotto mysql funziona.
Ora ti spiego passo per passo questo codice sql:

Codice PHP:
create table offerte (
  
id_offerte INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  
off VARCHAR(255)
);

INSERT INTO offerte (offVALUES ('a');
INSERT INTO offerte (offVALUES ('b');
INSERT INTO offerte (offVALUES ('c');

create table periodi (
  
id_periodi INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  
id_offerte INT NOT NULL,
  
per INT NOT NULL
);

INSERT INTO periodi (id_offerteperVALUES (1100);
INSERT INTO periodi (id_offerteperVALUES (250);
INSERT INTO periodi (id_offerteperVALUES (280);
INSERT INTO periodi (id_offerteperVALUES (3150);
INSERT INTO periodi (id_offerteperVALUES (3120); 
Mi sono creato due tabelle simili a quelle che usi tu e le ho riempite con alcuni dati


Codice PHP:
SELECT MIN(perFROM periodi GROUP BY id_offerte 
Questa query ti restituisce tutti i valori minimi del campo "per" della tabella "periodi" raggruppandoli secondo il campo "id_offerte". Mi spiego meglio, Il GROUP BY si occupa di suddividere la tabella "periodi" in 3 gruppi (un gruppo contiene i periodi con id_offerte=1, un gruppo contiene i periodi con id_offerte=2, e... cosi via ) mentre il MIN(per) prende, da ogni gruppo creato con GROUP BY, il valore di "per" più piccolo.


Codice PHP:
SELECT o.off AS nomeoffertaMIN(p.per) AS minperiodo FROM periodi pofferte o WHERE o.id_offerte=p.id_offerte GROUP BY p.id_offerte
Questa query invece è una elaborazione di quella superiore, il principio di base è lo stesso ma è stato inserito il nome delle offerte.
"p" e "o" sono dei nomi che vengono usati internamente alla query per identificare univocamente i campi che hanno lo stesso nome (nell'esempio il campo id_offerte si chiama nello stesso modo in entrambe le tabelle).
"nomeofferta" e "minperiodo" sono invece dei nomi arbitrari che si assegnano per essere usati poi nel codice PHP.


Il codice PHP per visualizzare tale query può essere il seguente:
Codice PHP:
$sql "SELECT o.off AS nomeofferta, MIN(p.per) AS minperiodo FROM periodi p, offerte o WHERE o.id_offerte=p.id_offerte GROUP BY p.id_offerte";
$res mysql_query($sql);
if(
$res) {
  if(
mysql_num_row($res)>0) {
    while(
$riga=mysql_fetch_array($res)) {
      echo 
$riga["nomeofferta"]." ".$riga["minperiodo"]."</br>\n";
    }
  }

E' tutto
Spero di aver chiarito i tuoi dubbi.

Ciao
Akito