Originariamente inviato da jeck
Lo so che andrebbe strutturato diversamente il db, ma questa è una modifica che vuole il cliente, all'inizio tutte le ricerche si basavano sulla tabella principale, e quindi con una query si riusciva a prendere tranquillamente tutti i dati senza problemi. Non potrei neanche tenere le date come dici te, perchè le due date potrebbero essere distanti qualche giorno, e se alla query passo una data centrale quel record si deve visualizzare, quindi devo sempre avere 2 date, inizio e fine.
In pratica la prima tabella contiene tutti i dati per creare una pagina del sito, e la seconda tabella contiene la lista di tutte le categorie di quella pagina creata (le pagine sono eventi sportivi). Ora invece tutte le ricerche si basano sulla seconda tabella, ma tutti i dati da prelevare si trovano nella prima, e per avere una retrocompatibilità con i dati già immessi non posso fare molte modifiche, ora il cliente vuole che alle categorie di quella pagina creata siano impostate delle date,perchè devono poter essere listate separatamente. Non posso fare modifiche al db anche perchè molte altre sezioni del sito prendono i dati da quelle due tabelle, e siccome il budget è molto basso non posso modificare molte cose.
Provo la query che hai detto, ma non so se va, ricordo di aver provato con le INNER JOIN e non mi restituiva tutti i dati previsti.
Ok era solo un suggerimento per rendere il tutto più ''pulito''. Se devi tenerlo così, usa la stessa query che ti ho scritto sopra e al posto di ''WHERE data Between .....'' puoi scriverla così :

'...WHERE datainizio>='01/02/2003' AND datafine<='15/02/2003' '; il resto della query dovrebbe essere giusto in quanto prende tutti i valori delle due tabelle, se non ti tornano tutti i valori che vorresti potrebbe essere perchè da una parte o dall'altra manca la corrispondenza, in quel caso, sosituisci INNER JOIN con LEFT JOIN che ti prende tutti i valori anche senza corrispondenza di id. Prova e facci sapere ciao.