¿has probado usar "joins" en lugar de poner todas las condiciones en el "where"?
Todos los registros de TablaA que existan en TablaB:
Código SQL
[-]
Select A.Campo1, A.Campo2, B.Campo1, B.campo2
From TablaA A
Join tablaB B on A.Llave = B.Llave
Where A.Campo1 = UnValor
Todos los registros de TablaA aunque no existan en TablaB:
Código SQL
[-]
Select A.Campo1, A.Campo2, B.Campo1, B.campo2
From TablaA A
left outer Join tablaB B on A.Llave = B.Llave
Where A.Campo1 = UnValor