Oracle - Ayuda con query

 
Vista:
sin imagen de perfil
Val: 13
Ha disminuido 1 puesto en Oracle (en relación al último mes)
Gráfica de Oracle

Ayuda con query

Publicado por Diego (5 intervenciones) el 31/10/2018 18:23:13
Buenas. No soy programador ni experto, solo me defiendo googleando y resolviendo cosas que necesito para el trabajo...

Dicho esto me estoy quemando la cabeza en resolver una cuestión.

Tengo dos tablas.

Una tiene dos campos, un ID y dos atributos, llamemoslo ID y ATR1 (que se repite) y ATR2 (varios para cada ATR1)

La segunda tiene solo el ATR1 y ATR2, con las combinaciones correctas posibles, y con la misma lógica, de un ATR1 que se repite por tener varios ATR2 posibles


Lo que necesito obtener es todos los ID de la TABLA 1 que no tienen los ATR1 y ATR2 que existen como combinación correcta en la tabla 2, y que el resultado también me traiga cuales son esos ATR1 y ATR2 de la tabla 2 que no encuentra en la tabla 1, no se si me explico.

En resumen, el resultado debería traerme todos los ID de la tabla 1, con la combinación correcta de ATR1 y ATR2 de la TABLA 2 y que NO existe para ese ID en la tabla 1...
Espero haya logrado explicarme y me disculpo si la solución es simple y por mi poco conocimiento no logro resolverlo. Se que me registre recién hoy pero necesito resolverlo por temas laborales por eso arranco directamente con una pregunta.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antonio
Val: 42
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Ayuda con query

Publicado por Antonio (13 intervenciones) el 31/10/2018 22:11:37
Hola, podrias explicar un poco mejor, por ejemplo ponerme los script de las tablas:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- Tabla1
CREATE TABLE TABLA1
(
  ID INTEGER ;
  ATR1 VARCHAR2(100),
  ATR2 VARCHAR2(100)
) ;
 
--Tabla2
CREATE TABLE TABLA2
(
  ATR1 VARCHAR2 (100),
  ATR2 VARCHAR2(100)
) ;
es así la estructura??
qué quieres decir con: que se repite?

bueno, creo que si entendiera tu pregunta podría ayudarte, he trabajado mucho con lógica de conjuntos en SQL Oracle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 13
Ha disminuido 1 puesto en Oracle (en relación al último mes)
Gráfica de Oracle

Ayuda con query

Publicado por Diego (5 intervenciones) el 31/10/2018 23:56:15
Hola Antonio.

Muchas gracias por responder.

En efecto, es asi como indicas la estructura de ambas tablas. Con que se repite el ATR1 me refiero es que tiene relacion de uno a varios.

Deje de pensar un rato y como siempre de alguna manera creo que lo resolvi despues que volvi al tema y despeje la cabeza pero aun no lo se, porque ya debi salir del trabajo y hasta mañana no puedo probar el query (las tablas no tienen indices son de casi 200 millones de registros una de ellas y no puedo tocarlas porque no tengo permisos de escritura sobre ellas solo puedo ejecutar las consultas)

Lo que pensé antes de que me diera tiempo a finalizar la ejecución es esto:

1
2
3
4
5
6
7
8
SELECT ID, A.ATR1, A.ATR2
FROM
(SELECT ID AS ID2, ATR1, ATR2
FROM TABLA1, TABLA2
WHERE TABLA1.ATR1 = TABLA2.ATR1) A, TABLA2.ATR2
WHERE  ID2 = ID (+)
AND TABLA1.ATR2 = TABLA2.ATR2 (+)
AND TABLA2.ID IS NULL

Como lo estoy escribiendo al voleo en el aire puede que me este comiendo alguna coma o este mexclando alguna tabla, pero creo que la idea de consulta anidada del join de ambas tablas y seleccion posterior ante nuevo join o la idea esta..

Obviamente ni siquiera lo probe aunque pareceria que la idea esta, cualquier sugerencia de alguien que la tiene mas clara que yo mas que bienvenida.

De nuevo muchas gracias por tu respuesta!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar