elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Como proteger una cartera Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Obteniendo resultados segun mayores cantidades
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Obteniendo resultados segun mayores cantidades  (Leído 990 veces)
mark182


Desconectado Desconectado

Mensajes: 395


Ver Perfil WWW
Obteniendo resultados segun mayores cantidades
« en: 30 Marzo 2016, 05:04 »

Buenas gente! como estan?

Estoy haciendo un sitio donde los usuarios tienen un campo donde se acumulan los "seguidores" del usuario (en la tabla se llama followersCount).

Por otra parte, el usuario publica productos, y estos productos, tienen un campo contador donde acumulo "likes" del producto (en la tabla se llama likesCount).

Ahora bien, las tablas users y products ya estan relacionadas. Lo que quiero hacer es, traer los primero 6 usuarios (en orden desc), que:

* Tienen la mayor cantidad de productos
* Sus productos tienen la mayor cantidad de likes.
* Y tienen la mayor cantidad de seguidores.

En ese orden de prioridad. Para yo poder mostra: "UsuarioA tiene X cantidad de productos, sus productos tienen X likes en total y este usuario tiene X seguidores."

Les muestro las tablas:

Tabla Users:
Código:
mysql> describe users;
+-------------------+------------------+------+-----+---------------------+----------------+
| Field             | Type             | Null | Key | Default             | Extra          |
+-------------------+------------------+------+-----+---------------------+----------------+
| id                | int(10) unsigned | NO   | PRI | NULL                | auto_increment |
| username          | varchar(255)     | NO   |     | NULL                |                |
| email             | varchar(255)     | NO   | UNI | NULL                |                |
| password          | varchar(60)      | NO   |     | NULL                |                |
| followersCount    | bigint(20)       | NO   |     | NULL                |                |
+-------------------+------------------+------+-----+---------------------+----------------+

Tabla Products:
Código:
mysql> describe products;
+---------------+------------------+------+-----+---------------------+----------------+
| Field         | Type             | Null | Key | Default             | Extra          |
+---------------+------------------+------+-----+---------------------+----------------+
| id            | int(10) unsigned | NO   | PRI | NULL                | auto_increment |
| name          | varchar(35)      | NO   |     | NULL                |                |
| price         | decimal(20,2)    | NO   |     | NULL                |                |
| lovesCount    | bigint(20)       | NO   |     | NULL                |                |
| user_id       | int(10) unsigned | NO   | MUL | NULL                |                |
+---------------+------------------+------+-----+---------------------+----------------+

Espero que me puedan ayudar ya que no soy muy bueno en BD.

Muchisimas gracias!
Saludos.


En línea

engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Obteniendo resultados segun mayores cantidades
« Respuesta #1 en: 30 Marzo 2016, 05:58 »

lo puedes hacer con un join, simplemente join a las 2 tablas por id de usuario y user_id de productos, ordenas por lo que quieras y limitas a 6


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
mark182


Desconectado Desconectado

Mensajes: 395


Ver Perfil WWW
Re: Obteniendo resultados segun mayores cantidades
« Respuesta #2 en: 30 Marzo 2016, 16:35 »

No me funciono. La consulta la arme asi:

Código:
SELECT `users`.`id`, `users`.`username`, `users`.`followersCount`, count(products.id) as productsCount, `products`.`lovesCount`
FROM `users`
LEFT JOIN `products`
       ON `users`.`id` = `products`.`user_id`
ORDER BY `productsCount` desc, `products`.`lovesCount` desc, `users`.`followersCount` desc
LIMIT 6

Y el resultado fue este:
Código:
+----+----------+----------------+---------------+------------+
| id | username | followersCount | productsCount | lovesCount |
+----+----------+----------------+---------------+------------+
| 12 | usertest |              0 |             3 |          0 |
+----+----------+----------------+---------------+------------+
1 row in set (0,00 sec)

Como pueden ver, me trajo un solo resultado con la cantidad de productos existentes, pero no diferenciandolos por el usuario que lo publico.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
me aparecen cantidades en euros y yo necesito en pesos...
Programación Visual Basic
rusocom 5 1,047 Último mensaje 2 Junio 2007, 03:14
por rusocom
Lectura de cantidades númericas en Vb6
Programación Visual Basic
freddyjose00 9 5,285 Último mensaje 17 Febrero 2010, 17:02
por Hasseds
[Aporte] Java-Leer cantidades (consola)
Java
Senior++ 2 1,865 Último mensaje 16 Julio 2012, 06:26
por hucruz
Cpu sube y baja el % usado a cantidades elevadas
Hardware
Senior++ 1 974 Último mensaje 14 Septiembre 2015, 06:06
por Randomize
Ayuda con combinaciones y cantidades
Programación General
WHK 5 1,394 Último mensaje 25 Enero 2016, 00:22
por WHK
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines