Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/03/2009, 17:48
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: bucle con mysql?

Cuando se trata de consultas, existen recursos más poderosos en SQL que un bucle.
Piensa que el SQL es un lenguaje de consultas, por lo que está optimizado precisamente para ese tipo de tareas.

En las tablas que planteas no existen precios, ni valores de compras, solamente los ID que no resultan muy claros a qué se refieren. Como una forma estandarizada de mnemotécnica te sugiero que no uses un nombre tan genérico como "ID" para todas las tablas. És mejor usar el "ID como sufijo del nombre de campo, algo así como "USUARIO_ID" y "COMPRA_ID" (los DBA usan habitualmente esto así). Esto luego te facilitará la escritura de las consultas, te lo aseguro.

Bien. Suponiendo estas tablas:
Cita:
USUARIO(usuario_id, login, pass, referido)
COMPRA(compras_id, usuario_id, nombre_login)
Para saber cuántas compras tiene cada usuario, sería:
Código sql:
Ver original
  1. SELECT usuario_id, COUNT(*)  compras_totales
  2. FROM usuario LEFT JOIN compra USING(usuario_id)
  3. GROUP BY usuario_id;

Podría usar INNER JOIN en lugar de LEFT JOIN, pero eso no te devolvería los usuarios con cero compras.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)