PHP - ayuda con mysql

   
Vista:

ayuda con mysql

Publicado por jesus (42 intervenciones) el 29/08/2015 18:29:58
hola amigos tengo una duda con una consulta ya le intente de varias formas pero no me sale, quisiera ver si alguien sabe como realizarla..

ejemplo a si es como tengo mi consulta....

| id | nom | cod | dir |
| 1 | AAA | A1 | xxx|
| 1 | AAA | A1 | xxx|
| 1 | AAA | A1 | xxx|
| 2 | BBB | A2 | zzz|

a lo que quiero llegar es a las que tienen el mismo codigo me mustre solo el primer registro.

| id | nom | cod | dir |
| 1 | AAA | A1 | xxx|
| 2 | BBB | A2 | zzz|

alguien podria ayudarme con esto.

Saludos y gracias.!
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 xve

ayuda con mysql

Publicado por xve (5513 intervenciones) el 30/08/2015 10:19:34
Yo utilizaria el group by... algo así:

1
select * from tabla GROUP BY id

coméntanos, ok?
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

ayuda con mysql

Publicado por jesus (42 intervenciones) el 31/08/2015 03:34:12
ok, gracias por contestar va de nuevo..!

esto lo muestro en un html, hago una consulta a mi tabla, a qui solo tengo como referencia el campo codigo, ya que en el ejemplo es un pedido de 3 articulos, los cuales llevan el mismo codigo, pero al mostrar solo quiero que me muestre el primer pedido por codigo, para que no se repita el codigo si es que se generara un pedido de 10 articulos, solo que me muestre el primer articulo, de cada codigo.

| id | articulo | codigo | dir |
| 1 | AAA | A101 | xxx|
| 2 | AA2 | A101 | xxx|
| 3 | AA3 | A101 | xxx|
| 4 | BBB | A2xd | zzz|

Tendria que mostrar esto en mi html. (pero la consulta no me sale.)

| id | articulo | codigo | dir |
| 1 | AAA | A101 | xxx|
| 4 | BBB | A2xd | zzz|


saludos y gracias.!
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 xve

ayuda con mysql

Publicado por xve (5513 intervenciones) el 31/08/2015 08:22:23
Hola Jesus, aquí nos has cambiado la estructura de los datos, antes siempre tenían el mismo id!!!!

Como dice Vainas, aquí creo que tendrás que utilizar el min... algo así:

1
SELECT min(id) as id,articulo,codigo,dir FROM `test` group by codigo

Coméntanos, ok?
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

ayuda con mysql

Publicado por jesus (42 intervenciones) el 31/08/2015 17:10:27
perdon no avia visto eso de mi ID, pero en si ese pienso que no me podria ayudar.!

mira te muestro de nuevo.! con mas ejemplos.

| id | articulo | codigo | dir |
| 1 | AAA | A101 | xxx|
| 1 | AA2 | A101 | xxx|
| 1 | AA3 | A101 | xxx|
| 1 | CCC| A111 |zzz |
| 1 | DDD| A111 |zzz |
| 2 | BBB | A2xd | zzz|
| 2 | GGG | A2xd | zzz|
| 2 | PPP | GH58 | zzz|

Tendria que mostrar esto en mi html. (pero la consulta no me sale.)

Esto es a donde quiero llegar.! lo unico que tengo es el codigo como referencia a cada uno, el codigo lo manejo como numero de pedido, los que tienen el mismo codigo, son del mismo pedido, saludos.

| id | articulo | codigo | dir |
| 1 | AAA | A101 | xxx|
| 1 | CCC| A111 |zzz |
| 2 | BBB | A2xd | zzz|
| 2 | PPP | GH58 | zzz|

Mil disculpas por tantas vueltas.!
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 xve

ayuda con mysql

Publicado por xve (5513 intervenciones) el 31/08/2015 20:39:18
Hola Jesus, cuando ejecutas la consulta que te mostré, que te devuelve?
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 Vainas

ayuda con mysql

Publicado por Vainas (254 intervenciones) el 30/08/2015 19:04:41
No me queda claro lo que quieres hacer.

podrias explicarnos de nuevo con mas datos?. Es que veo que el campo id, nombre y codigo se repiten. tiene que haber algo para diferenciarlos de algun modo.

Puede que sea lo que dice xve y tengas que usar group by sobre "id" o sobre "cod" pero sobre otros campos tendras que usar algo mas como min, max, count....

tambien podria ser una subconsulta.

Saludos.
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

ayuda con mysql

Publicado por jesus (42 intervenciones) el 31/08/2015 03:33:46
ok, gracias por contestar va de nuevo..!

esto lo muestro en un html, hago una consulta a mi tabla, a qui solo tengo como referencia el campo codigo, ya que en el ejemplo es un pedido de 3 articulos, los cuales llevan el mismo codigo, pero al mostrar solo quiero que me muestre el primer pedido por codigo, para que no se repita el codigo si es que se generara un pedido de 10 articulos, solo que me muestre el primer articulo, de cada codigo.

| id | articulo | codigo | dir |
| 1 | AAA | A101 | xxx|
| 2 | AA2 | A101 | xxx|
| 3 | AA3 | A101 | xxx|
| 4 | BBB | A2xd | zzz|

Tendria que mostrar esto en mi html. (pero la consulta no me sale.)

| id | articulo | codigo | dir |
| 1 | AAA | A101 | xxx|
| 4 | BBB | A2xd | zzz|


saludos y gracias.!
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 Vainas

ayuda con mysql

Publicado por Vainas (254 intervenciones) el 31/08/2015 19:45:12
Buenas de nuevo:

Mirate esto que creo que es lo que te puede ayudar: http://www.cryer.co.uk/brian/sql/sql_first_record_per_group.htm

Hay varias soluciones pero te pongo aqui la primera mas o menos modificada a lo tuyo a ver si fucniona (puede tener errores):

1
2
3
4
5
6
7
8
SELECT t.id, t.articulo as PrimerArticulo, t.codigo, t.dir
FROM mi_tabla t
INNER JOIN (
   SELECT codigo, min(articulo) as PrimerArticulo
   FROM pedidos
   GROUP BY codigo) auxiliar
ON auxiliar.codigo = t.codigo
AND auxiliar.PrimerArticulo = t.articulo

Yo a esto solo le veo un problema y es el uso de la funcion MIN() con un argumento que no es un numero sino una cadena. Hay que tener en cuenta en que la comparacion se basa en el codigo ascii de las letras asi que posiblemente al ser A = 65 y "0" = 48 tendremos un problema.

De todas formas seguire revisando.

Saludos.
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

ayuda con mysql

Publicado por jesus (42 intervenciones) el 31/08/2015 20:24:26
te agrasdeco mucho por el interes, de verdad muchas gracias.!

por lo que eh probado y revisando los msj. mi consulta salio un un simple.

GROUP BY codigo.

Lo seguire revisando a ver si no me encuentro con un error, pero por el momento esta funcionando muy bien.!


Saludos a todos..!!!

gracias.!
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 Vainas

ayuda con mysql

Publicado por Vainas (254 intervenciones) el 01/09/2015 10:45:57
Recuerda lo que te dije sobre comparar letras y numeros:

revisa funciones como substring en mysql o la bbdd que estes usando. Quizas puedes separar AAA y AA2 y que solo se compare el ultimo caracter. Esta funcion tendras que agregarla a el min o max

min(substring(....)) as as PrimerArticulo

Saludos.
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