Se devi fare la JOIN fra 3 tabelle devi "raggrupparle". In che senso? La join si fa tra 2 tabelle soltanto, quindi devi fare in modo di eseguire la JOIN fra una delle tabelle e la JOIN delle altre due:
codice:
SELECT <campi>
FROM Tabella1 INNER JOIN (
Tabella2 INNER JOIN Tabella3 ON <vincoli>
) ON <vincoli> ;
Nel tuo caso dovrebbe essere così:
codice:
SELECT tab1.value1, tab2.value2, tab3.value3
FROM tab1 INNER JOIN (
tab2 INNER JOIN tab3 ON tab2.id1 = tab3.id1
) ON tab1.id2 = tab2.id2;
Nello standard SQL, poi, non è nemmeno necessario l'INNER JOIN in questo caso, dato che hai delle tabelle con join su campi con nome uguale:
codice:
SELECT tab1.value1, tab2.value2, tab3.value3
FROM tab1 NATURAL JOIN (tab2 NATURAL JOIN tab3);
Ciao.