si ma finchè metti la condizione nell'where e la colleghi alle altre tramite l'AND è impossibile che tiri fuori qualcosa se quell'in non esiste.
se hai una query con questa condizione:
e $IDFornitore non esiste, non ti tirerà MAI fuori qualcosacodice:...where tb1.Eliminato <>'S' and tb2.Eliminato <>'S' and tb2.IDFornitore=$IDFornitore
io non stavo parlando di condizioni...ma delle definizioni delle tabelle coinvolte nella JOIN, e il RIGHT e LEFT giustamente hanno due comportamenti diversi, così come l'INNER e l'OUTER etc etc.
prova a postare il dump parziale delle tabelle coinvolte