Innanzitutto la inner join puoi farla solo se coinvolge 1 campo di una tabella e 1 di un'altra, non puoi farla su 1 campo di una tabella e 2 dell'altro. Quindi dobbiamo fare un prodotto cartesiano e selezionare le righe che ci servono.
Allora, se la situazione è quella ke ti ho esposto quando hai detto ke ti urge un corso:
chiamiamo istat la tabella dove hai il campo cod_provincia e cod_comune
e chiamiamo prova la tabella dove hai il campo cap. OK?
allora:
SELECT *
FROM istat A INNER JOIN prova B
WHERE (A.cod_provincia=(substring(B.cap, 1, 2)) && A.cod_comune=(substring(B.cap, 3, 3)))