Hola de nuevo David_Carrera_G:
Cita: me asalta una duda luego del LEFT JOIN indicaste una clausula [AND T.ibs IS NULL] esta se te colo o lo agregaste como condición al LEFT JOIN???.
La condición va en el WHERE... como te comenté en el post pasado, una alternativa para mejorar las condiciones IN, es utilizar un LEFT JOIN... checa este ejemplo:
Código MySQL:
Ver original+------+----------------+
| ID | Nombre_Usuario |
+------+----------------+
| 1 | Ramon |
| 2 | Juan |
| 3 | Hugo |
| 4 | Paco |
| 5 | Luis |
+------+----------------+
+------+-------------+
| id | descripcion |
+------+-------------+
| 1 | Ramon |
| 3 | Hugo |
| 5 | Luis |
+------+-------------+
Supongamos que queremos obtener los registros de la tabla1 que no existen en la tabla2... de la manera en que tú lo haces sería asi:
Código MySQL:
Ver original+------+----------------+
| ID | Nombre_Usuario |
+------+----------------+
| 2 | Juan |
| 4 | Paco |
+------+----------------+
El problema con este tipo de consultas, es que la subconsulta del IN se ejecuta una vez por cada registro que exista en la tabla2... es por eso que tiene tan bajo rendimiento. Al utilizar un LEFT JOIN, puedes obtener el mismo resultado:
Código MySQL:
Ver original+------+----------------+
| ID | Nombre_Usuario |
+------+----------------+
| 2 | Juan |
| 4 | Paco |
+------+----------------+
Observa que la condición IS NULL se debe colocar el la sección WHERE, la explicación visual se da si hacemos un SELECT * de ambas tablas:
Código MySQL:
Ver original+------+----------------+------+-------------+
| ID | Nombre_Usuario | id | descripcion |
+------+----------------+------+-------------+
| 1 | Ramon | 1 | Ramon |
| 3 | Hugo | 3 | Hugo |
| 5 | Luis | 5 | Luis |
+------+----------------+------+-------------+
Observa que los campos que no tienen una correspondencia el la tabla2 se ponen en NULL, por lo tantos son sólo estos los que te interesa recuperar.
finalmente mencionas esto:
Cita: estas bases son transaccionales, por lo cual no poseen indices en sus tablas.
No entiendo qué tiene que ver una cosa con la otra... ¿a qué te refieres con que son bases transaccionales y por qué razón no poseen índices?
Saludos
Leo.