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

como formular una consulta omitiendo los resultados repetidos

Estas en el tema de como formular una consulta omitiendo los resultados repetidos en el foro de Mysql en Foros del Web. Hola chicos tengo un par de registros.... en una tabla con dos columnas cliente articulo 1 12 1 12 2 13 3 15 4 16 ...
  #1 (permalink)  
Antiguo 27/06/2011, 09:38
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
como formular una consulta omitiendo los resultados repetidos

Hola chicos tengo un par de registros....
en una tabla con dos columnas

cliente articulo
1 12
1 12
2 13
3 15
4 16

yo necesito que me traiga todos menos los que se repita... seria:

cliente articulo
2 13
3 15
4 16

Como seria la consulta?

gracias chicos.
__________________
Mono programando!
twitter.com/eguimariano

Última edición por SirDuque; 27/06/2011 a las 09:39 Razón: Titulo
  #2 (permalink)  
Antiguo 27/06/2011, 10:15
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: como formular una consulta omitiendo los resultados repetidos

Hola SirDuque:

Puedes utilizar la cláusula HAVING y el GROUP BY

Código MySQL:
Ver original
  1. mysql> create table TuTabla (cliente int, articulo int);
  2. Query OK, 0 rows affected (0.06 sec)
  3.  
  4. mysql> insert into TuTabla values (1, 12),(1, 12),(2, 13),
  5.     -> (3, 15),(4, 16);
  6. Query OK, 5 rows affected (0.02 sec)
  7. Records: 5  Duplicates: 0  Warnings: 0
  8.  
  9. mysql> select * from TuTabla;
  10. +---------+----------+
  11. | cliente | articulo |
  12. +---------+----------+
  13. |       1 |       12 |
  14. |       1 |       12 |
  15. |       2 |       13 |
  16. |       3 |       15 |
  17. |       4 |       16 |
  18. +---------+----------+
  19. 5 rows in set (0.00 sec)
  20.  
  21. mysql> select cliente, articulo from TuTabla
  22.     -> GROUP BY cliente, articulo
  23.     -> HAVING count(*) = 1;
  24. +---------+----------+
  25. | cliente | articulo |
  26. +---------+----------+
  27. |       2 |       13 |
  28. |       3 |       15 |
  29. |       4 |       16 |
  30. +---------+----------+
  31. 3 rows in set (0.00 sec)

Saludos
Leo
  #3 (permalink)  
Antiguo 27/06/2011, 10:17
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: como formular una consulta omitiendo los resultados repetidos

Cita:
Iniciado por leonardo_josue Ver Mensaje
Hola SirDuque:

Puedes utilizar la cláusula HAVING y el GROUP BY

Código MySQL:
Ver original
  1. mysql> create table TuTabla (cliente int, articulo int);
  2. Query OK, 0 rows affected (0.06 sec)
  3.  
  4. mysql> insert into TuTabla values (1, 12),(1, 12),(2, 13),
  5.     -> (3, 15),(4, 16);
  6. Query OK, 5 rows affected (0.02 sec)
  7. Records: 5  Duplicates: 0  Warnings: 0
  8.  
  9. mysql> select * from TuTabla;
  10. +---------+----------+
  11. | cliente | articulo |
  12. +---------+----------+
  13. |       1 |       12 |
  14. |       1 |       12 |
  15. |       2 |       13 |
  16. |       3 |       15 |
  17. |       4 |       16 |
  18. +---------+----------+
  19. 5 rows in set (0.00 sec)
  20.  
  21. mysql> select cliente, articulo from TuTabla
  22.     -> GROUP BY cliente, articulo
  23.     -> HAVING count(*) = 1;
  24. +---------+----------+
  25. | cliente | articulo |
  26. +---------+----------+
  27. |       2 |       13 |
  28. |       3 |       15 |
  29. |       4 |       16 |
  30. +---------+----------+
  31. 3 rows in set (0.00 sec)

Saludos
Leo
te re pasaste leo. gracias
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: Ninguno
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 23:12.