LEFT OUTER JOIN

12/04/2005 - 22:59 por Lic. Julio Cesar Velasco Gomez | Informe spam
Hola a todos!! Tengo una duda: tengo 2 tablas donde en la primera tengo 2000
registro y en la segunda 500, quiero hacer un select de tal manera que llene
un dato que hace falta en la primera y que POSIBLEMENTE este en la segunda,
usando un campo comun, mi problema es que no se porque me regresa aprox 2300
registros. Segun yo con un LEFT OUTER JOIN deberian estar exactamente los
2000 de la primera tabla, y los registros que coincidan con su campo lleno,
los que no coincidan pues en NULL. Haciendo pruebas he visto que con el
DISTINCT es bastante mas certero, teniendo como 10 o 12 registros de mas, lo
que no capto es porque tengo que usar el DISTINCT y aun asi no me regresa
mis 2000 originales.


SELECT DISTINCT T1.*,ACTUAL.OCUPADO AS OCUPACIO;
FROM T1 LEFT OUTER JOIN ACTUAL;
ON T1.REGISTRO=¬TUAL.REGISTRO;
INTO TABLE SYS(2023)+'\t3' .
 

Leer las respuestas

#1 Ricardo Passians
13/04/2005 - 01:40 | Informe spam
Debes chequear si el campo REGISTRO es único en ambas tablas, es decir, que
no se repite en ninguna.


Hola a todos!! Tengo una duda: tengo 2 tablas donde en la primera tengo


2000
registro y en la segunda 500, quiero hacer un select de tal manera que


llene
un dato que hace falta en la primera y que POSIBLEMENTE este en la


segunda,
usando un campo comun, mi problema es que no se porque me regresa aprox


2300
registros. Segun yo con un LEFT OUTER JOIN deberian estar exactamente los
2000 de la primera tabla, y los registros que coincidan con su campo


lleno,
los que no coincidan pues en NULL. Haciendo pruebas he visto que con el
DISTINCT es bastante mas certero, teniendo como 10 o 12 registros de mas,


lo
que no capto es porque tengo que usar el DISTINCT y aun asi no me regresa
mis 2000 originales.


SELECT DISTINCT T1.*,ACTUAL.OCUPADO AS OCUPACIO;
FROM T1 LEFT OUTER JOIN ACTUAL;
ON T1.REGISTRO=¬TUAL.REGISTRO;
INTO TABLE SYS(2023)+'\t3' .




Preguntas similares