Problemas con JOIN

24/05/2005 - 01:22 por Blanca Rosa Santos Roncal | Informe spam
Hola a todos!

Mi nombre es Blanca Santos y soy nueva en el Foro. Les
escribo para ver si alguno de ustedes me puede ayudar.

Aquí va :

Tengo una Tabla Principal de 1'576,521 registros que
consulto cruzando con otra tabla Secundaria de 12,122
registros.

Lo que sucede es esto :

La Tabla mayor pertenece a las direcciones de un
determinado distrito y la menor contiene los nombres de
sinónimos de las diferentes calles de ese distrito.

Una Calle que está en la Tabla Principal puede tener uno o
más sinónimos en la tabla Secundaria.

Se ha elegido un ejemplo cualquiera de una dirección que
en la tabla secundaria cuenta con dos sinónimos.
A la hora de construir mi Select obtengo como resultado
dos registros que es un duplicado de un solo registro
válido.
Esto lo hace porque arroja un registro por cada sinónimo
que encuentre en la tabla secundaria.

Necesito que únicamente arroje un solo registro, aún si en
la tabla secundaria hay más de 1 sinónimo para la calle
elegida.

Ejemplo :
Direccion : Avenida Angamos 688

Tabla 1 : Avenida Angamos
Tiene dos Sinonimos
Tabla 2 :
Sinonimo 1 : Avenida Primavera
Sinonimo 2 : Prolongacion Primavera

En este caso, la direccion es Avenida Angamos 688 y es
unica. Pero al relacionarla con la Tabla Sinonimos me
arroja dos registros iguales.

0512 Avenida Angamos 688 (para Sinonimo 1)
0512 Avenida Angamos 688 (para Sinonimo 2)


Estoy usando

SELECT tabla1.a, tabla1.b, tabla1.c, tabla2.a, tabla2.b

Con todas estas combinaciones :

FROM Tabla1 JOIN tabla2 ON tabla1.a = tabla2.a
FROM Tabla1 LEFT OUTER JOIN tabla2 ON tabla1.a = tabla2.a
FROM Tabla1 RIGHT OUTER JOIN tabla2 ON tabla1.a = tabla2.a
FROM Tabla1 FULL JOIN tabla2 ON tabla1.a = tabla2.a

WHERE tabla2.a = condicion

Y lamentablemente siempre arroja 2 registros idénticos, es
decir toma el número de registros que aparecen en la tabla
2

Alguien me sugiere alguna alternativa??

Muchas gracias por su tiempo

Saludos

Blanca Santos Roncal
Lima - Perú

PD: Hace tiempo envié un mensaje solicitando ayuda, me
respondieron tres personas, quise responderles pero me
rebotaron todos los mensajes. Dos de ellas son Francisco
Birrer y Claudio Valdes. Muchas Gracias!! espero poder
conversar con ustedes en otra oportunidad!!!

Preguntas similare

Leer las respuestas

#1 Isaias Islas
24/05/2005 - 01:34 | Informe spam
Hola Blanca

¿Porque dices que Avenida Angamos es sinonimo de Avenida Primavera y
Prolongacion Primavera?

Gracias.
Respuesta Responder a este mensaje
#2 Alejandro Mesa
24/05/2005 - 01:44 | Informe spam
Blanca Santos,

Para responder tu pregunta, necesitamos saber cual es el criterio que
debemos usar para escojer un solo sinonimo de los que machan con la fila en
la primera tabla. Basado en el ejemplo:

Tabla 1 : Avenida Angamos
Tiene dos Sinonimos
Tabla 2 :
Sinonimo 1 : Avenida Primavera
Sinonimo 2 : Prolongacion Primavera



Cual sinonimo debemos escoger en el caso de que una fila en tabla1 tenga mas
de una fila correspondiente en tabla2?


AMB

"Blanca Rosa Santos Roncal" wrote:

Hola a todos!

Mi nombre es Blanca Santos y soy nueva en el Foro. Les
escribo para ver si alguno de ustedes me puede ayudar.

Aquí va :

Tengo una Tabla Principal de 1'576,521 registros que
consulto cruzando con otra tabla Secundaria de 12,122
registros.

Lo que sucede es esto :

La Tabla mayor pertenece a las direcciones de un
determinado distrito y la menor contiene los nombres de
sinónimos de las diferentes calles de ese distrito.

Una Calle que está en la Tabla Principal puede tener uno o
más sinónimos en la tabla Secundaria.

Se ha elegido un ejemplo cualquiera de una dirección que
en la tabla secundaria cuenta con dos sinónimos.
A la hora de construir mi Select obtengo como resultado
dos registros que es un duplicado de un solo registro
válido.
Esto lo hace porque arroja un registro por cada sinónimo
que encuentre en la tabla secundaria.

Necesito que únicamente arroje un solo registro, aún si en
la tabla secundaria hay más de 1 sinónimo para la calle
elegida.

Ejemplo :
Direccion : Avenida Angamos 688

Tabla 1 : Avenida Angamos
Tiene dos Sinonimos
Tabla 2 :
Sinonimo 1 : Avenida Primavera
Sinonimo 2 : Prolongacion Primavera

En este caso, la direccion es Avenida Angamos 688 y es
unica. Pero al relacionarla con la Tabla Sinonimos me
arroja dos registros iguales.

0512 Avenida Angamos 688 (para Sinonimo 1)
0512 Avenida Angamos 688 (para Sinonimo 2)


Estoy usando

SELECT tabla1.a, tabla1.b, tabla1.c, tabla2.a, tabla2.b

Con todas estas combinaciones :

FROM Tabla1 JOIN tabla2 ON tabla1.a = tabla2.a
FROM Tabla1 LEFT OUTER JOIN tabla2 ON tabla1.a = tabla2.a
FROM Tabla1 RIGHT OUTER JOIN tabla2 ON tabla1.a = tabla2.a
FROM Tabla1 FULL JOIN tabla2 ON tabla1.a = tabla2.a

WHERE tabla2.a = condicion

Y lamentablemente siempre arroja 2 registros idénticos, es
decir toma el número de registros que aparecen en la tabla
2

Alguien me sugiere alguna alternativa??

Muchas gracias por su tiempo

Saludos

Blanca Santos Roncal
Lima - Perú

PD: Hace tiempo envié un mensaje solicitando ayuda, me
respondieron tres personas, quise responderles pero me
rebotaron todos los mensajes. Dos de ellas son Francisco
Birrer y Claudio Valdes. Muchas Gracias!! espero poder
conversar con ustedes en otra oportunidad!!!

Respuesta Responder a este mensaje
#3 Eleazar
24/05/2005 - 01:51 | Informe spam
Hola
si lo que quieres mostrar es solamente la clave, la direccion y el sinonimo
de la direccion, agrupa por la clave y la direccion tomas el maximo o el
minimo segun la necesidad otra opcion es usar un subquery pero es un poco
mas lento
eje.
SELECT tabla1.a, Max(tabla1.b), Max(tabla2.b)
FROM Tabla1 JOIN tabla2 ON tabla1.a = tabla2.a
Group By tabla1.a
Ele
veracruz-mexico
Saludos
"Blanca Rosa Santos Roncal" escribió en el
mensaje news:075501c55fee$4da8f220$
Hola a todos!

Mi nombre es Blanca Santos y soy nueva en el Foro. Les
escribo para ver si alguno de ustedes me puede ayudar.

Aquí va :

Tengo una Tabla Principal de 1'576,521 registros que
consulto cruzando con otra tabla Secundaria de 12,122
registros.

Lo que sucede es esto :

La Tabla mayor pertenece a las direcciones de un
determinado distrito y la menor contiene los nombres de
sinónimos de las diferentes calles de ese distrito.

Una Calle que está en la Tabla Principal puede tener uno o
más sinónimos en la tabla Secundaria.

Se ha elegido un ejemplo cualquiera de una dirección que
en la tabla secundaria cuenta con dos sinónimos.
A la hora de construir mi Select obtengo como resultado
dos registros que es un duplicado de un solo registro
válido.
Esto lo hace porque arroja un registro por cada sinónimo
que encuentre en la tabla secundaria.

Necesito que únicamente arroje un solo registro, aún si en
la tabla secundaria hay más de 1 sinónimo para la calle
elegida.

Ejemplo :
Direccion : Avenida Angamos 688

Tabla 1 : Avenida Angamos
Tiene dos Sinonimos
Tabla 2 :
Sinonimo 1 : Avenida Primavera
Sinonimo 2 : Prolongacion Primavera

En este caso, la direccion es Avenida Angamos 688 y es
unica. Pero al relacionarla con la Tabla Sinonimos me
arroja dos registros iguales.

0512 Avenida Angamos 688 (para Sinonimo 1)
0512 Avenida Angamos 688 (para Sinonimo 2)


Estoy usando

SELECT tabla1.a, tabla1.b, tabla1.c, tabla2.a, tabla2.b

Con todas estas combinaciones :

FROM Tabla1 JOIN tabla2 ON tabla1.a = tabla2.a
FROM Tabla1 LEFT OUTER JOIN tabla2 ON tabla1.a = tabla2.a
FROM Tabla1 RIGHT OUTER JOIN tabla2 ON tabla1.a = tabla2.a
FROM Tabla1 FULL JOIN tabla2 ON tabla1.a = tabla2.a

WHERE tabla2.a = condicion

Y lamentablemente siempre arroja 2 registros idénticos, es
decir toma el número de registros que aparecen en la tabla
2

Alguien me sugiere alguna alternativa??

Muchas gracias por su tiempo

Saludos

Blanca Santos Roncal
Lima - Perú

PD: Hace tiempo envié un mensaje solicitando ayuda, me
respondieron tres personas, quise responderles pero me
rebotaron todos los mensajes. Dos de ellas son Francisco
Birrer y Claudio Valdes. Muchas Gracias!! espero poder
conversar con ustedes en otra oportunidad!!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida