Hola alexitech, no estoy seguro de haber entendido correctamente lo que necesitas, pero creo que el criterio que tomas para excluir el registro 2 es que el rango de fechas está comprendido en el rango de fechas del registro 3, en otras palabras se podría decir que el registro 2 es una parte del registro 3 correcto???
se me ocurre que hagas algo como esto:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.08 sec)
-> (1, 158, '2011-06-15', '2011-06-24', '14:00:00', 'open'),
-> (2, 159, '2011-06-15', '2011-06-24', '11:00:00', 'blocked'),
-> (3, 160, '2011-06-01', '2011-06-30', '11:00:00', 'blocked');
Query OK, 3 rows affected (0.05 sec)
+----------+------+--------------+------------+----------+---------+
| Registro
| id
| fecha_inicio
| fecha_fin
| horario
| status | +----------+------+--------------+------------+----------+---------+
| 1 | 158 | 2011-06-15 | 2011-06-24 | 14:00:00 | open |
| 2 | 159 | 2011-06-15 | 2011-06-24 | 11:00:00 | blocked |
| 3 | 160 | 2011-06-01 | 2011-06-30 | 11:00:00 | blocked |
+----------+------+--------------+------------+----------+---------+
-> (
-> T1.fecha_fin
between T2.fecha_inicio
and T2.fecha_fin
-> );
+----------+------+--------------+------------+----------+---------+
| Registro
| id
| fecha_inicio
| fecha_fin
| horario
| status | +----------+------+--------------+------------+----------+---------+
| 3 | 160 | 2011-06-01 | 2011-06-30 | 11:00:00 | blocked |
+----------+------+--------------+------------+----------+---------+
La idea de la subconsulta sería buscar un elemento dentro de la tabla en donde el rango de fechas no contenga a las fechas del registro que estás analizando. No sé si me expliqué con palabras, creo que es mejor que lo pruebes con tus datos y nos comentes si te sirve o no.
Saludos
Leo.
--------------------------------------------
La frase más clara sobre el karma, de la retribución del universo,
el que ayuda es ayudado.