perchè se levo and mi stampa , se lo metto non stampa niente

vi posto l'intero codice

Codice PHP:

$query 
mysql_query("SELECT * FROM tab1,tab2,utenti WHERE ((tab1.campo=tab2.campo) and (tab1.id_utente=utenti.id) and (tab2.id_utente=utenti.id))"); 
            
$listamysql_num_rows($query); 
            for (
$x0$x$lista$x++) 
            { 
                
$provamysql_fetch_assoc($query); 
echo 
$prova['nome']."
"
;
echo 
$prova['campo']."
"
;

            } 
mi dovrebbe stampare tutti i nomi(prelevati dalla tabella utenti, ma solo quelli che stanno nella tabella tab1 e tab2 in base all'id_utente)
infatti in tab1 e tab2 ci sta un campo id_utente che sarebbe l'id che sta nella tabella utenti

quindi vorrei stampare i nomi dei soli id che stanno nella tabella tab1 e tab2

poi vorrei prelevare e stampare solo quei record che hanno il campo uguale tra tab1 e tab2

non so se mi sono spiegato bene, sembra un pò contorto come discorso