Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Join con distintos

Estas en el tema de Join con distintos en el foro de Oracle en Foros del Web. Quiero hacer un join que me muestre los distintos, me explico mejor con el ejemplo: Tabla 1 Codigo Letra 1000 'A' 2000 'B' 3000 'C' ...
  #1 (permalink)  
Antiguo 16/02/2012, 04:45
Avatar de triqui  
Fecha de Ingreso: diciembre-2008
Ubicación: Zaragoza(España)
Mensajes: 624
Antigüedad: 15 años, 4 meses
Puntos: 31
Join con distintos

Quiero hacer un join que me muestre los distintos, me explico mejor con el ejemplo:


Tabla 1

Codigo Letra

1000 'A'
2000 'B'
3000 'C'
4000 'D'


Tabla 2

Codigo Letra
2000 'B'
3000 'C'
4000 'D'


Quiero que me muestre el 1 - 'A' de la Tabla 1 porque no es coincidente.


Si hago esto:

Código SQL:
Ver original
  1. SELECT t1.Codigo FROM tabla1 t1 INNER JOIN tabla2 t2 ON t1.Codigo = t2.Codigo;

Me mostrará : {2000,3000,4000}

Pero quiero que solo memuestre: {1000}

Y esto no lo hace bien porque cruza todo por todo:

Código SQL:
Ver original
  1. SELECT t1.Codigo FROM tabla1 t1 INNER JOIN tabla2 t2 ON t1.Codigo <> t2.Codigo;


Muchas gracias !!
__________________
La nueva red social de quinielas quiniela resultados
Cazaresultados Futbol base en directo
  #2 (permalink)  
Antiguo 16/02/2012, 08:45
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Join con distintos

Con subconsultas es sencillo, tanto con IN como con EXISTS:

Código SQL:
Ver original
  1. SELECT t1.Codigo FROM tabla t1 WHERE t1.Codigo NOT IN (SELECT Codigo FROM tabla t2)
  2. SELECT t1.Codigo FROM tabla t1 WHERE NOT EXISTS (SELECT 1 FROM tabla2 WHERE tabla2.Codigo = t1.Codigo)

Ahora, ¿qué tal jugar con un LEFT join? se supone que eso trae siempre todas las consultas de la tabla a la izquierda del join (t1) aunque no tenga coincidencias con la tabla a la derecha.
  #3 (permalink)  
Antiguo 16/02/2012, 10:16
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: Join con distintos

Es mas facil y mas rapido usar el MINUS.

SELECT CAMPO_A FROM TABLA_A
MINUS
SELECT CAMPO_A FROM TABLA_B

Etiquetas: distintos, join, select, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:15.