Saluti a tutti quanti, espongo il problema:

ho la seguente tabella articoli

codice:
CREATE TABLE _articoli (
  id int(11) NOT NULL auto_increment,
  titolo varchar(255) default NULL,
  prezzo decimal(10,2) default NULL,
  PRIMARY KEY  (id)
);
e la tabella correlata offerte

codice:
CREATE TABLE _offerte (
  id int(11) NOT NULL auto_increment,
  id_articolo int(11) default NULL,
  data_inizio date default NULL,
  data_fine date default NULL,
  prezzo_offerta decimal(10,2) default NULL,
  PRIMARY KEY  (id)
);
vorrei ordinare gli articoli per prezzo ascendente (o descendente....) considerando anche l'eventuale prezzo in offerta qualora fosse attivo (determinabile tramite clausola WHERE data_inizio<='$oggi' AND data_fine>='$oggi'.

ulteriore appunto, non sempre l'offerta esiste oppure è valida.

pensavo pertanto di ottenere come risultato della query un tracciato del tipo

id, prezzo_applicato

dove prezzo_applicato è il prezzo più basso tra il prezzo di listino e l'eventuale prezzo_offerta (solo se, come detto, l'offerta è "attiva").

avete suggerimenti da darmi in proposito? io speravo che una generica query come quella sotto potesse funzionare, ma ovviamente mi sbagliavo

SELECT
`_articoli`.id,
`_articoli`.prezzo,
`_offerte`.prezzo_offerta,
`_articoli`.titolo,
MIN(`_articoli`.prezzo, `_offerte`.prezzo_offerta ) as prezzo_applicato
FROM
`_offerte`
INNER JOIN `_articoli` ON (`_offerte`.id_articolo = `_articoli`.id)
WHERE
(`_offerte`.data_inizio <= '2010-03-23') AND (`_offerte`.data_fine >= '2010-03-23')

ringrazio chiunque possa darmi una mano!