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

Listado campos iguales

Estas en el tema de Listado campos iguales en el foro de Mysql en Foros del Web. Hola a todos...! He leido varios post pero no puedo dar con la solución. Tengo una tabla MySQL con los campos "apellido" y "nombre" entre ...
  #1 (permalink)  
Antiguo 06/11/2013, 10:40
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Listado campos iguales

Hola a todos...!

He leido varios post pero no puedo dar con la solución.

Tengo una tabla MySQL con los campos "apellido" y "nombre" entre otros. Necesito hacer una consulta que me liste, solamente, todos los registros que tengan exactamente el mismo apellido y nombre.

Por favor, alguien me puede orientar o ayudar?

Gracias!
  #2 (permalink)  
Antiguo 06/11/2013, 10:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Listado campos iguales

¿Y cómo has intentado escribirla?
La pregunta es algo básica, ya que para lograr que sean exactamente el mismo nombre y el mismo apellido, simplemente debes poner en el WHERE ambas condiciones
Algo como:
Código MySQL:
Ver original
  1. ...
  2. WHERE nombre = 'nombrebuscado' AND apellido = 'apellidobuscado'
¿Qué dificultad te plantea?
__________________
¿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 06/11/2013, 11:45
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Listado campos iguales

Hola gnzsoloyo...!

Bien, entiendo como es con WHERE y poniendo las condiciones (como si fuese un buscador)... pero no me refiero a eso.

Me refiero a hacer un select, donde me liste todos los registros donde los campos apellido y nombre sean iguales. He intentado con INNER JOIN en la misma tabla, pero no me sale y en realidad nos si es el procedimiento correcto.

Hice esto, sin muchos conocimientos y de acuerdo a algunas orientaciones:

Código MySQL:
Ver original
  1. SELECT T1.id, T1.apellido, T1.nombre, T2.apellido, T2.nombre
  2. FROM T1
  3. INNER JOIN T1 T2
  4. ON (T1.apellido = T2.apellido) AND (T1.nombre = T2.nombre)
  5. ORDER BY T1.apellido, T1.nombre

Pero me repite registros y tarda mucho la consulta, cuando se que la cantidad de registros coincidentes en este momento no son más de 100.

Última edición por gnzsoloyo; 06/11/2013 a las 12:14 Razón: Codigo de programación no permitido en foros de BBDD
  #4 (permalink)  
Antiguo 06/11/2013, 12:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Listado campos iguales

Si lo que quieres es sólo ver la lista de nombres y apellidos quye se repiten en la tabla, pero no dsicriminar qué registros están afectados, sería:
Código MySQL:
Ver original
  1. SELECT apellido, nombre
  2. FROM T1
  3. GROUP BY apellido, nombre
  4. HAVING COUNT(*) > 1

Si lo que quieres es ver qué registros están afectados:
Código MySQL:
Ver original
  1. SELECT T1.id, T1.apellido, T1.nombre
  2. FROM T1
  3. WHERE (apellido, nombre) IN(SELECT apellido, nombre FROM T1
  4. GROUP BY apellido, nombre HAVING COUNT(*) > 1)
  5. ORDER BY T1.apellido, T1.nombre
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 06/11/2013 a las 13:08 Razón: Una linea de más...
  #5 (permalink)  
Antiguo 06/11/2013, 12:55
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Listado campos iguales

Sí gnzsoloyo, es exactamente eso lo que quiero ver, cuáles son todos los registros qué están afectados... pero pruebo hacerlo con el ejemplo que me has puesto y me dice que "la consulta no se puede ejecutar". No se donde está el error.
  #6 (permalink)  
Antiguo 06/11/2013, 13:04
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Listado campos iguales

Quizá la consulta tenga que ser así... es correcto?
Código MySQL:
Ver original
  1. FROM $people_table WHERE (apellido, nombre) IN(SELECT apellido, nombre FROM $people_table
  2. GROUP BY apellido, nombre HAVING COUNT(*) > 1)
  3. ORDER BY apellido, nombre

Última edición por gnzsoloyo; 06/11/2013 a las 13:05 Razón: Código de programacion no permitido en Foros de BBDD. Leer las normas, por favor.
  #7 (permalink)  
Antiguo 06/11/2013, 13:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Listado campos iguales

No postees código de programación. Este foro es sólo SQL.

En cuanto a lo que estás mostrando... sería una copia del último que te propongo, una vez eliminada una linea que me quedó de más. En tanto las variables contengan datos correctos de los nomrbes de tablas, debería funcionar.
¿Cuál es la duda?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 06/11/2013, 13:19
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Respuesta: Listado campos iguales

Disculpas, se me escapó lo del código de programación!!!

Sí, era eso, la última línea de tu ejemplo (ORDER BY apellido, nombre) está demás, por eso no me ejecutaba la consulta.

Muchas gracias por la gran ayuda gnzsoloyo!!!

Etiquetas: campo, campos, iguales, listado, registro, 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 20:08.