Foros del Web » Programando para Internet » PHP »

Instruccion sql

Estas en el tema de Instruccion sql en el foro de PHP en Foros del Web. Saludos, les traigo esta problemita esperando que alguien me pueda echar la mano. Tengo la siguiente tabla: NOMBRE ESTADO COLOR sergio hidalgo azul sergio hidalgo ...
  #1 (permalink)  
Antiguo 12/01/2010, 10:21
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 0
Instruccion sql

Saludos, les traigo esta problemita esperando que alguien me pueda echar la mano. Tengo la siguiente tabla:

NOMBRE ESTADO COLOR
sergio hidalgo azul
sergio hidalgo rojo
oscar mexico verde
oscar mexico amarillo

Ahora necesito una sentencia sql ya que estoy en un sistema con mysql y php y estos datos los tengo que mostrar en una tabla, pero la situacion es que no debe de mostrarlos todos, sino solamente algo asi:

NOMBRE ESTADO
sergio hidalgo
oscar mexico

a lo que me refieor es que cuando hago la sentencia sql normal me jalara todos los adtos, pero soolo necesito mostrar las columans de nombre y estado pero solo mostrar los registros una vez y no dos veces comos eria ya que la sentencia lee en total 4 registros debido a que hay 4 nombres de colores, espero haber sido clazro y que alguien me pueda ayudar, saludos.
  #2 (permalink)  
Antiguo 12/01/2010, 10:24
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Instruccion sql

Creo que tu problema es mas de Sql que de php... Es más efeciente hacer eso que requieres con el motor como tal que con el lenguaje de programación.

Te sugiero que te apoyes en el foro de mysql ( si estamos hablando de mysql ).

Un adelanto, podrías ayudarte de Group By o de Select Distinct.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 12/01/2010, 10:25
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Instruccion sql

total acuerdo con el post de arriba!.. esto no tiene q ver con php

Código MySQL:
Ver original
  1. select distict nombre, estado from nombre_tabla
__________________
More about me...
~ @rhyudek1
~ Github
  #4 (permalink)  
Antiguo 12/01/2010, 10:26
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Instruccion sql

Teoria de conjuntos. Investiga un poco mas sobre SQL. Pero para lo que pides seria asi:
Código SQL:
Ver original
  1. SELECT NOMBRE, ESTADO
  2. FROM TABLE
  3. GROUP BY NOMBRE;
__________________
I see dead pixels
  #5 (permalink)  
Antiguo 12/01/2010, 10:31
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años
Puntos: 7
Respuesta: Instruccion sql

pero si hace el gruop by solo le va a mostrar un dato de cada nombre :O?
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #6 (permalink)  
Antiguo 12/01/2010, 10:40
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Instruccion sql

Si. Creo que es lo que quiere hacer saber el nombre y estado sin importar el color. Eso entendi.
__________________
I see dead pixels
  #7 (permalink)  
Antiguo 12/01/2010, 10:46
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Instruccion sql

si, lo de serge medina esta bien, pero memanda error, sera porque estoy ligando tablas con left join?
  #8 (permalink)  
Antiguo 12/01/2010, 10:50
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Instruccion sql

Pero que tipo de error te manda? De SQL? De PHP?
__________________
I see dead pixels
  #9 (permalink)  
Antiguo 12/01/2010, 10:51
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Instruccion sql

no, es por que group by te pide todos los datos del select

Código MySQL:
Ver original
  1. SELECT NOMBRE, ESTADO
  2. GROUP BY NOMBRE, ESTADO;

saludos
__________________
More about me...
~ @rhyudek1
~ Github
  #10 (permalink)  
Antiguo 12/01/2010, 10:56
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Instruccion sql

para mas seguro les muestro las tabals que son, esta es mi tabala de distintivos:

id id_verificador distintivo guia fecha
1 1 101 A0012 06/01/2010
2 1 102 A0012 06/01/2010
3 1 103 A0012 06/01/2010
4 2 104 A0012 06/01/2010
5 2 105 A0012 06/01/2010
6 2 106 A0012 06/01/2010

y esta la de verificadores:

id nombre apellido
1 sergio reyes
2 oscar bautista
3 santiago contreras

y mi consulta es asi:

$result = mysql_query("SELECT distintivos.id, distintivos.distintivo, distintivos.fecha, distintivos.guia, verificadores.nombre, verificadores.paterno, verificadores.materno FROM distintivos left join verificadoreson distintivos.Id_verificador = verificadores.id order by distintivos.id", $dp);


pero esta consulta me muestra todos ya que si se fijan son 6 distintivos distintos, pero en si necesito que solo me muetsre dos registros, uno con el nombre de sergio y el de oscar, aun cuando tienen varios rgistros estos dos nombre,e spero esto de mejor idea
  #11 (permalink)  
Antiguo 12/01/2010, 10:59
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Instruccion sql

Hidek, creo que eso es incorrecto. No es necesario incluir todos las columnas en grou by que tienes en la declaracion de columnas, se puede hacer, pero eso implicaria agrupar por todas las columnas que se incluyen en el group by.
__________________
I see dead pixels
  #12 (permalink)  
Antiguo 12/01/2010, 11:02
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Instruccion sql

Prueba tu consulta en PHPMyAdmin, HeidiSQL, o algun programa de administracion de MySQL y fijate que la consulta haga lo que quieres que haga.
__________________
I see dead pixels
  #13 (permalink)  
Antiguo 12/01/2010, 11:04
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Instruccion sql

mira

pgAdmin III

hice esta consulta a mi DB

select nombres, a_paterno from personal group by nombres

ERROR: column "personal.a_paterno" must appear in the GROUP BY clause or be used in an aggregate function

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #14 (permalink)  
Antiguo 12/01/2010, 11:06
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Instruccion sql

ok, ya meti la consulta en phpmyadmin, y me mostro lo siguiente

id Distintivo Fecha_envio Guia nombre paterno materno
497 102 2010-01-07 1 Albino Marcial Escalona Roque
498 103 2010-01-07 1 Albino Marcial Escalona Roque
499 104 2010-01-07 1 Albino Marcial Escalona Roque
500 105 2010-01-07 1 Albino Marcial Escalona Roque
502 202 2010-01-08 2 Alejandro Navarro Davila
503 203 2010-01-08 2 Alejandro Navarro Davila
504 204 2010-01-08 2 Alejandro Navarro Davila
505 205 2010-01-08 2 Alejandro Navarro Davila

pero entonces como pongo el gruop by para que salga algo asi:

Fecha_envio Guia nombre paterno materno
2010-01-07 1 Albino Marcial Escalona Roque
2010-01-08 2 Alejandro Navarro Davila

?
  #15 (permalink)  
Antiguo 12/01/2010, 11:08
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Instruccion sql

lee un manual .. si no sabes hacer consultas es preferible que aprendas eso antes de que lo postees como un problema .. aparte este foro es de php no de mysql =B

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #16 (permalink)  
Antiguo 12/01/2010, 11:18
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Instruccion sql

Agrupalos por id que tienes en la tabla nombres. Aunque si tienes distintas fechas ligadas a una misma persona obviamente solo te saldrá una.
__________________
I see dead pixels
  #17 (permalink)  
Antiguo 12/01/2010, 11:20
 
Fecha de Ingreso: diciembre-2009
Mensajes: 128
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Instruccion sql

ya lo resolvi, a mi consulta solo le puse el group by, pero lo habia puesto despues del order by, y era antes, ya hace lo que necesito, gracias a todos por su apoyo

Etiquetas: instruccion, sql
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 21:00.