Tengo dos tablas que se ven así:¿Cómo puedo unir dos tablas pero solo devolver las filas que no coinciden?
T1: ID | Date | Hour | Interval
T2: ID | Date | Hour
Básicamente necesito para unirse a estas tablas cuando sus documentos de identidad, fechas y horas de los partidos. Sin embargo, sólo quiero devolver los resultados de la tabla 1 que hacen no coinciden con los resultados en la tabla 2.
Sé que esto parece simple, pero donde estoy atascado es el hecho de que hay varias filas en la tabla 1 que coinciden con la tabla 2 (hay múltiples intervalos para cualquier hora dada). Tengo que devolver todos estos intervalos, siempre que no entran en el mismo período de una hora en la tabla 2.
datos Ejemplo:
T1: 1 | 1/1/2011 | 1 | 1
1 | 1/1/2011 | 1 | 2
1 | 1/1/2011 | 2 | 1
1 | 1/1/2011 | 2 | 2
T2: 1 | 1/1/2011 | 1
Mi resultado esperado fijado para este serían las dos últimas filas desde T1
. ¿Alguien puede señalarme en el camino correcto?
Gracias por su respuesta, Ambas consultas funcionan bien con MS Access. Para ser honesto, nunca supe que podrías combinar declaraciones 'SELECT' como esa, +1. – Breakthrough
En realidad, una respuesta más - Fui con la primera opción, la cláusula 'WHERE NOT EXISTS'. Ingenioso, nunca pensé que pudieras hacer eso, funcionó maravillosamente. – Breakthrough
Tenga en cuenta que NOT EXISTS no está bien optimizado por el procesador de consultas Jet/ACE y no siempre usará índices en ambos lados de la comparación (lo mismo es cierto para NOT IN, en un grado mucho mayor). Por lo tanto, a medida que crece el conjunto de datos, puede ver un gran golpe de rendimiento con la versión NO EXISTE. La versión JOIN siempre utilizará todos los índices disponibles. –