Mi rispondo da solo :

in realta' la query è giusta va solo invertito l ordine delle tabelle altrimenti prende l ID della tabella di destra (utentianagrafica) a me invece serve l ID della tabella di sinistra (utenti)

$sql = "SELECT * FROM utentianagrafica AS b JOIN utenti AS a ON a.ID = b.IDutente WHERE ( nome LIKE '%".$ric."% ' OR cognome LIKE '%".$ric."% ' OR email LIKE '%".$ric."% ' ) AND b.provincia = '".$provincia."' " ;


Grazie.
Prego.