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

seleccionar valores en una consulta

Estas en el tema de seleccionar valores en una consulta en el foro de Mysql en Foros del Web. Hola, buenas! Tengo un problema a la hora de hacer una consulta de selección. A ver si alguien pudiera echarme una mano con esto:) Tengo ...
  #1 (permalink)  
Antiguo 28/12/2010, 12:04
 
Fecha de Ingreso: octubre-2010
Mensajes: 189
Antigüedad: 9 años, 2 meses
Puntos: 0
seleccionar valores en una consulta

Hola, buenas!

Tengo un problema a la hora de hacer una consulta de selección. A ver si alguien pudiera echarme una mano con esto:)

Tengo una tabla de este tipo:

Nombre| contraseña| transacción| id


Tal y como está orientada la página me interesa que cada persona que se registra pueda tener cualquier nombre, de manera que se pueden repetir. Luego cuando los recogo los incluyo en un link y así los identifico.

Me gustaría seleccionar en una consulta los nombres de aquellos que han realizado una determinada transacción.

El problema es que una misma persona ha podido realizar la misma transacción varias veces, y si yo hago una consulta normal me aparecería el nombre de dicha persona varias veces, pero si pongo un DISTINCT sólo me saldría una vez dicho nombre , en lugar de tantas veces como personas diferentes con dicho nombre hay.

Se me ha ocurrido seleccionar las contraseñas de dichas personas y luego dentro del WHILE hacer otra consulta que me de el nombre de cada persona.
Ahora el problema es que solo me devuelve un registro(no sé porqué..)

Alguna idea, please?
Saludos
  #2 (permalink)  
Antiguo 28/12/2010, 12:17
 
Fecha de Ingreso: noviembre-2010
Mensajes: 25
Antigüedad: 9 años
Puntos: 0
Respuesta: seleccionar valores en una consulta

Que es lo que quieres que te aparezca en tu consulta??
Solamente los nombres de las personas que realizaron cierta transacción??
Osea, digamos que quieres todos los que hicieron la transaccion 001
Quieres que te aparezca esto?
Transacción Nombre
001 Juan
001 Pedro
001 José

Aunque Juan haya hecho 20 veces la transacción 001, sól quieres que te aparezca una vez??

Es correcto como lo entiendo??

Cuàles son las tablas de donde vas a obtener la infrmación??

Saludos!
  #3 (permalink)  
Antiguo 28/12/2010, 12:56
 
Fecha de Ingreso: octubre-2010
Mensajes: 189
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: seleccionar valores en una consulta

Hola de nuevo:)

Gracias por responder anayazti.
Sí, eso es.

Digamos que la tabla podría ser así:

Transacción Nombre Contraseña id
compra Juan 4545as 1
compra Pedro were54 2
compra José yo12 3
alquiler Juan silla2 4
alquiler Juan silla2 5
alquiler Juan 4545as 6
compra Eva tren44 7
venta
..
O sea que cada tipo tipo de transacción puede ser realizada por la misma persona y por otras personas que se llamen igual.
No quiero recoger las transacciones, sólo los nombres de las personas que realizaron un determinado tipo de transacción, pero que solo aparezca una vez el nombre de cada persona.
Es decir, si hago esto:
Código PHP:
$conexion=mysql_connect..
..
$registros=mysql_query("SELECT DISTINCT  nombre FROM tabla WHERE transaccion='venta'",$conexion)or
die(
"Problems with select:".mysql_error());

while(
$reg=mysql_fetch_array($registros))

, pues me saldría solo una vez cada nombre, aunque fueran varias personas.
Si no pongo el DISTINCT me saldrían todos los nombre aunque algunos correspondieran a la misma persona.
Luego pensé en hacer esto:
Código PHP:
$conexion=mysql_connect..
...
$registros=mysql_query("SELECT  DISTINCT contraseña  FROM tabla WHERE transaccion='ventas'",$conexion)or
die(
"Problems with select:".mysql_error());

while(
$reg=mysql_fetch_array($registros))
{
$contraseña=$reg['contraseña'];
$conexion2=mysql_connect..
...
$registros=mysql_query("SELECT  nombre  FROM tabla WHERE contraseña='$contraseña'",$conexion)or
die(
"Problems with select:".mysql_error());
if(
$reg=mysql_fetch_array($registros))
{
$name=$reg['name'];
echo 
"$name";
}

Esta última manera me parece lógica, pero sólo me devuelve un valor( a pesar de haber más).
Gracias de nuevo, un saludo!
  #4 (permalink)  
Antiguo 28/12/2010, 13:55
 
Fecha de Ingreso: noviembre-2010
Mensajes: 25
Antigüedad: 9 años
Puntos: 0
Respuesta: seleccionar valores en una consulta

Prueba agrupar los resultados iguales en una cláusula GROUP BY, y me dices que pasa va??

http://dev.mysql.com/tech-resources/articles/debunking-group-by-myths.html
  #5 (permalink)  
Antiguo 07/01/2011, 20:02
 
Fecha de Ingreso: octubre-2010
Mensajes: 189
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: seleccionar valores en una consulta

anayazti. Parece que funcionó.

Graccie:)

Etiquetas: seleccionar
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 07:18.