Cómo mostrar la cantidad de datos relacionados en una sola consulta

Te mostramos como lograr un listado de registros que muestre la cantidad de datos relacionados de otra tabla.

Supongamos que tenemos una tabla de contactos de nuestra empresa y que cada uno, tiene una x cantidad de compras hechas, y lo que queremos hacer, es mostrar el nombre de cada contacto con la cantidad de compras que han hecho con esta forma:

  • Carlos (1)
  • Esteban (5)
  • Jorge (2)

Y esto, solo con una consulta MYSQL!

La consulta que mostraría solamente los contactos sería:

SELECT nombre FROM contactos ORDER BY nombre ASC

Esta consulta obviamente solo traería los nombres de cada uno.

  • Carlos
  • Esteban
  • Jorge

Asumiendo que tu tabla "compras" tiene una clave foránea que la une con los contactos llamada id_contacto, esto se resolvería con la siguiente consulta:

SELECT con.nombre, count(com.id_contacto) as compras
FROM contactos AS con
LEFT OUTER JOIN compras AS com
ON com.id_contacto = con.id
GROUP BY con.id
ORDER BY con.nombre ASC

 

Esta consulta pondría la cantidad en una columna separada que es lo recomendable. Y si quisieras ya armar el resultado con los paréntesis, podés hacer uso de la función concat() de MYSQL de esta forma:

SELECT concat(con.nombre, '(', count(com.id_contacto), ')') as nombre_y_compras_juntos
FROM contactos AS con
LEFT OUTER JOIN compras AS com
ON com.id_contacto = con.id
GROUP BY con.id
ORDER BY con.nombre ASC
No hay comentarios para mostrar

Dejar Comentario

Contactanos

Contáctate Ahora!

Queremos conocer tus inquietudes

(Todos los campos obligatorios)