MySQL - Eliminar filas de consulta con datos repetidos

 
Vista:
sin imagen de perfil

Eliminar filas de consulta con datos repetidos

Publicado por jorge luis (6 intervenciones) el 03/12/2016 02:02:10
Que tal

Tengo un problema al tratar de depurar mi tabla de equipos.

Tengo la tabla EQUIPO con los campos hardwareID, nombre, fechaRegistro y la tabla RED con los campos redID, hardwareID y MAC. Necesito eliminar los equipos que repiten la MAC y solo debo dejar el mas reciente.
Al final debo agregar esta consulta a un procedimiento almacenado.

Aqui les muestro los datos que tengo luego de aplicar un inner join y como ven tengo equipos que deberia eliminar porque tienen la misma MAC.

Id nombre fechaRegistro MAC
7809 equipo01 18/10/2016 13:55 00:21:11:04:3E:01
3818 equipo02 11/07/2016 01:01 00:21:11:04:3E:01
4468 NNII-02 25/10/2016 16:29 00:13:46:97:BE:18
8508 NNII-02 11/11/2016 13:05 00:13:46:97:BE:18
7409 M2-LAB02 23/11/2016 13:35 00:14:D1:5E:2E:6F
1170 M2-CIN09 04/07/2016 09:34 00:14:D1:5E:2E:6F

He intentado generar la consulta pero nose como incluir la comparación con la fecha anterior y dejar solo la mas reciente.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 98
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Eliminar filas de consulta con datos repetidos

Publicado por kip (30 intervenciones) el 03/12/2016 02:35:52
Hola, podrias intentar esto:

1
2
3
4
5
6
7
8
SELECT MAX(EQ.hardwareID) AS 'ID EQUIPOO',
	EQ.nombre,
	EQ.fechaRegistro,
	EQ.MAC
FROM EQUIPO EQ
INNER JOIN RED
ON EQ.hardwareID = RED.hardwareID
GROUP BY EQ.MAC

Si te da algun error o no funciona cuentanos con detalles que datos te muestra o que mensaje de error te da.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Eliminar filas de consulta con datos repetidos

Publicado por jorge luis (6 intervenciones) el 03/12/2016 03:11:35
Gracias por tu pronta respuesta. Necesito eliminar esos datos, pero a veces son mas registros como

7809 equipo01 18/10/2016 00:21:11:04:3E:01
3818 equipo02 11/07/2016 00:21:11:04:3E:01
4468 NNII-02 25/10/2016 00:21:11:04:3E:01

Y solo deberia quedar el mas reciente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 98
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Eliminar filas de consulta con datos repetidos

Publicado por kip (30 intervenciones) el 03/12/2016 03:27:15
Probaste usar la query que coloque antes, lo que hago es agrupar por MAC y seleccionar el ID de mayor valor, podrias colocar que resultados te muestra?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Eliminar filas de consulta con datos repetidos

Publicado por jorge luis (6 intervenciones) el 03/12/2016 06:29:25
Si probe la query. Pero le realice unos cambios ya que la MAC corresponde a la tabla RED.

1
2
3
4
5
6
7
8
SELECT MAX(EQ.harwareID) AS 'ID EQUIPO',
           EQ.nombre,
           EQ.fechaRegistro,
           RED.MAC
FROM EQUIPO EQ
INNER JOIN RED
ON EQ.hardwareID = RED.hardwareID
GROUP BY RED.MAC

Esto es lo que muestra
img1http://www.lawebdelprogramador.com/usr/tmp/5842579791db1_th-img1.PNG

Ya no se muestra en la consulta los equipos con mac repetida, pero necesito que esos equipos que no se muestran es decir los repetidos queden eliminado de mi base de datos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar