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

Buscar coincidencias entre dos tablas de usuarios diferentes

Estas en el tema de Buscar coincidencias entre dos tablas de usuarios diferentes en el foro de Mysql en Foros del Web. Buenas, a ver si alguien me puede guiar please, que tengo dos tablas de usuarios, en la que la información se guarda de forma diferente ...
  #1 (permalink)  
Antiguo 05/02/2015, 03:11
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 18 años, 3 meses
Puntos: 4
Buscar coincidencias entre dos tablas de usuarios diferentes

Buenas,

a ver si alguien me puede guiar please, que tengo dos tablas de usuarios, en la que la información se guarda de forma diferente y no existe ningún campo para relacionarla. Me gustaría extraer aquellas filas en la que haya una posible coincidencia, digo posible, porque al guardarse de forma diferente los nombres o apellidos - por ejemplo - pueden haberse escrito de forma diferente.

Una tabla tiene alrededor de 30.000 registros, la otra, alrededor de 450.000.

Gracias
  #2 (permalink)  
Antiguo 05/02/2015, 03:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

Pues si no hay elementos que las relacionen de forma segura, u otras tablas secundarias que permitan vinculará, ni modo. No se puede.
De no haber algo que las relacione, lo único que lograrás será crear datos basura, es decir inconsistentes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 05/02/2015, 06:40
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

No hay un campo relacional pero hay datos que son aproximados,

por ejemplo el nombre y los apellidos de una tabla puede tener un nombre como "Javier García" y en la otra tabla "GARCIA, JAVIER" (sin acentos y mayúsculas)

El resultado podría ser algo así como encontrado con una apriximación de un 90%, eso sería válido en mi caso.
  #4 (permalink)  
Antiguo 05/02/2015, 06:44
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

Cita:
Iniciado por asitudela Ver Mensaje
No hay un campo relacional pero hay datos que son aproximados,

por ejemplo el nombre y los apellidos de una tabla puede tener un nombre como "Javier García" y en la otra tabla "GARCIA, JAVIER" (sin acentos y mayúsculas)

El resultado podría ser algo así como encontrado con una apriximación de un 90%, eso sería válido en mi caso.
Eso es lo que se llama inconsistencia...

¿Cómo puedes saber que "Javier García" y "Garcia, Javier" son exactamente la misma persona? ¿En qué te basarías para determinarlo?
No es un caso muy raro. En una ocasión tuve siete (7) personas con el mismo nombre y apellido en la misma institución y al mismo tiempo. Son cosas que pueden suceder.
Por eso yo hablaba de otras tablas, relacionadas con esas dos, donde pueda haber datos que se puedan usar para validar la relación de una forma mas segura.

Y te comento que hablar del 90% de "coincidencias" es lo mismo que hablar de datos-basura. 10% de errores es inaceptable en una base de datos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 05/02/2015, 07:45
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Eso es lo que se llama inconsistencia...

¿Cómo puedes saber que "Javier García" y "Garcia, Javier" son exactamente la misma persona? ¿En qué te basarías para determinarlo?
No es un caso muy raro. En una ocasión tuve siete (7) personas con el mismo nombre y apellido en la misma institución y al mismo tiempo. Son cosas que pueden suceder.
Por eso yo hablaba de otras tablas, relacionadas con esas dos, donde pueda haber datos que se puedan usar para validar la relación de una forma mas segura.

Y te comento que hablar del 90% de "coincidencias" es lo mismo que hablar de datos-basura. 10% de errores es inaceptable en una base de datos.
El tema es que tendré que comparar por varios campos a la vez, nombre, apellidos, dirección... y de ahí me gustaría si alguno encaja con una probabilidad.

Obviamente, aunque ese 10% es inaceptable para tí, podría ser aceptable para mí, te podría poner un montón de ejemplos pero no me quiero extender, si tengo al final 200 casos con una probabilidad mayor a 90% lo miro de forma manual uno a uno.
  #6 (permalink)  
Antiguo 05/02/2015, 08:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

Cita:
El tema es que tendré que comparar por varios campos a la vez, nombre, apellidos, dirección... y de ahí me gustaría si alguno encaja con una probabilidad.
Ese es el único camino viable. Tienes que lograr identificar lo que se denomina "superclave", una clave alternativa que permita discriminar en forma unívoca las relaciones.
Cualquier otra cosa no te será funcional.
No es sencillo decirte cómo hacerlo sin conocer el escenario real. Sólo opodremso darte consejos generales.

Evidentemente las aplicaciones que originan los datos de esas tablas tienen un muy mal diseño de datos y validaciones, ya que en una base no pueden darse este tipo de cosas...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 05/02/2015, 08:23
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Ese es el único camino viable. Tienes que lograr identificar lo que se denomina "superclave", una clave alternativa que permita discriminar en forma unívoca las relaciones.
Cualquier otra cosa no te será funcional.
No es sencillo decirte cómo hacerlo sin conocer el escenario real. Sólo opodremso darte consejos generales.

Evidentemente las aplicaciones que originan los datos de esas tablas tienen un muy mal diseño de datos y validaciones, ya que en una base no pueden darse este tipo de cosas...

Un sencillo ejemplo, imagínate que tienes tu base de datos de usuarios de una armería y tienes que compararla con la base de datos pública de terroristas, por tanto, tienes que comprobar si alguno de tus clientes es un terrorista. La base de datos pública es un desastre, no tienen dni, a veces tienen número de seguridad social, otras pasaporte, el nombre y la dirección la muestran en diferentes formatos...

Sin embargo, por ley, tengo la obligación de comprobarlo... En resumidas cuentas si logro reducir algo la base de datos me sirvirá, de ahí la probabilidad.
  #8 (permalink)  
Antiguo 05/02/2015, 08:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

Lo siento, pero sin datos concretos y ejemplos reales no es posible hacer un analisis válido. Que me ejemplifiques un caso imaginario no me sirve, porque no puedo saber, sin estar delante de tu PC, que tanto te desviaste del escenario en tu ejemplo.
Tengo experiencia en analisis de este tipo de incoveniente de inconsistencias, pero para hacerlo obtengo los datos que requiero de los usuarios. No los invento.



Y, francamente, ejemplificar algo hablando de terroristas es como minimo desagradable. Creo que deberías haber usado algo un poco menos... violento.

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 05/02/2015, 09:20
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Lo siento, pero sin datos concretos y ejemplos reales no es posible hacer un analisis válido. Que me ejemplifiques un caso imaginario no me sirve, porque no puedo saber, sin estar delante de tu PC, que tanto te desviaste del escenario en tu ejemplo.
Tengo experiencia en analisis de este tipo de incoveniente de inconsistencias, pero para hacerlo obtengo los datos que requiero de los usuarios. No los invento.



Y, francamente, ejemplificar algo hablando de terroristas es como minimo desagradable. Creo que deberías haber usado algo un poco menos... violento.

Si no quieres ayudar no me ayudes.... pero no menos valores los comentarios de otros sin conocimiento. Por supuesto tengo que comprobar mi base de datos con la de terroristas y lo tengo que hacer yo y se hace en muchos otros sectores y es la ley quién te obliga....
  #10 (permalink)  
Antiguo 05/02/2015, 09:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

Postea datos reales, entonces. O al menos ejemplso de datos que debe cruzarse.
Eso, o sigue la recomendación ya dada.
Ten en cuenta que en SQL no hay magia: Si no tienes datos con qué trabajar, o no los tienes tales que puedan relacionarse, todo lo que hagas será impreciso o inconsistente. Meras especiulaciones.

Por otro lado tengo derecho a decir lo que quiera cuando me hablas de terroristas, porque en mi país no tenemos ninguna obligación de realizar ese tipo de comprobaciones, al menos sin ser parte de las fuerzas de seguridad. Hacerlo sería simplemente ilegal.
Si en tu país tienen ese tipo de exigencias, no pienses que es universal.
Para mí era un ejemplo totalmente ficticio. Y antes de que imagines cualquier cosa, no: yo trabajo para una empresa multinacional, y no, no tenemos esa exigencia de parte del Estado. A pesar de lo que puedas pensar de mi país, tenemos leyes que protegen a los individuos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 06/02/2015, 02:24
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

Cita:
Iniciado por gnzsoloyo Ver Mensaje
A pesar de lo que puedas pensar de mi país, tenemos leyes que protegen a los individuos.
Si claro... ahora trata de mezclar esto.. quién ha hablado de países ahora... o de pensamientos.... y aunque trabajes en una multinacional y tengas alguna experiencia no quiere decir que sepas todo.... hay un proverbio que dice "Cuanto más se sabe, menos se asegura."
  #12 (permalink)  
Antiguo 06/02/2015, 12:01
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 16 años
Puntos: 774
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

aqui lo que se te dice es que un analisis como el que planteas esta un poco complicado, ahora de que herramientas dispones para hacerlo?? nada mas sql server?? tienes algo de BI?? en caso de ser sql server, ya investigaste sobre las busquedas en campos de tipo Full text???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #13 (permalink)  
Antiguo 20/02/2015, 04:23
 
Fecha de Ingreso: mayo-2004
Mensajes: 398
Antigüedad: 18 años, 3 meses
Puntos: 4
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

perdona, no me había percartado de que había una nueva respuesta.

Gracias por tu mensaje, de hecho es mysql.

Pongo en el siguiente enlace las tablas..

http://we.tl/ZycSWo1XBD

Pensaba que podría enlazar un conjunto de consultas y obtener, pero creo que tiene bastante complejidad el asunto y quizás sea más sencillo crear un script.

Estaría dispuesto a pagar si alguien lo soluciona..

Última edición por asitudela; 20/02/2015 a las 04:31
  #14 (permalink)  
Antiguo 20/02/2015, 05:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 14 años, 8 meses
Puntos: 2658
Respuesta: Buscar coincidencias entre dos tablas de usuarios diferentes

Movido a MySQL, de acuerdo a lo explicitado por el forista.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: bases-de-datos-general, coincidencias, ejemplo, tabla, tablas, usuarios
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 19:45.