Questo è quello che hai scritto tu
codice:
SELECT DISTINCT
tb_citta.Provincia,
tb_ricerca.Id_Ditta,
tb_ricerca.RagioneSociale
FROM
((tb_citta INNER JOIN tb_ricerca ON tb_citta.Provincia=tb_ricerca.Provincia)
INNER JOIN tb_indici ON tb_indici.Id_Ditta = tb_ricerca.Id_Ditta)
WHERE Regione='$_GET[isc]' AND Settore='$_GET[ssc]'
ORDER BY RagioneSociale
Ed è assolutamente corretto sintatticamente. Io dicevo solo di usare un modo diverso di scrivere il join, ma solo perchè io uso quello e lo trovo più chiaro. Con riferimento alla tua query:
codice:
SELECT DISTINCT
tb_citta.Provincia,
tb_ricerca.Id_Ditta,
tb_ricerca.RagioneSociale
FROM tb_citta, tb_ricerca, tb_indici
WHERE
tb_citta.Provincia = tb_ricerca.Provincia AND
tb_indici.Id_Ditta = tb_ricerca.Id_Ditta AND
Regione='$_GET[isc]' AND
Settore='$_GET[ssc]'
ORDER BY RagioneSociale
in pratica elenchi nella clausola FROM le tabelle di cui vuoi effettuare il join separate dalla cirgola e nella clausola WHERE elenchi le condizioni secondo cui unire le tabelle che sono poi le stesse che hai inserito nella tua query dopo ON (qualcosa = qualcos'altro).
Riguardo alla costruzione della tabella temporanea se scrivi questo
codice:
CREATE TEMPORARY TABLE nomeTabella
SELECT DISTINCT
tb_citta.Provincia,
tb_ricerca.Id_Ditta,
tb_ricerca.RagioneSociale
FROM
((tb_citta INNER JOIN tb_ricerca ON tb_citta.Provincia=tb_ricerca.Provincia)
INNER JOIN tb_indici ON tb_indici.Id_Ditta = tb_ricerca.Id_Ditta)
WHERE Regione='$_GET[isc]' AND Settore='$_GET[ssc]'
ORDER BY RagioneSociale
Lui ti crea una tabella temporanea che ha per colonne gli elementi che hai selezionato ovvero Provincia, Id_Ditta e RagioneSociale e per righe il risultato della SELECT
spero sia più chiaro
ciauz