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:
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.
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
Queremos conocer tus inquietudes
(Todos los campos obligatorios)