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

Conteo de votos

Estas en el tema de Conteo de votos en el foro de Mysql en Foros del Web. Hola, que tal?? Estoy teniendo complicaciones a la hora de hacer una consulta para contar votos. El problema es que debo de hacerlo con una ...
  #1 (permalink)  
Antiguo 27/04/2013, 19:28
Avatar de morfasto  
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 13 años, 3 meses
Puntos: 8
Conteo de votos

Hola, que tal??

Estoy teniendo complicaciones a la hora de hacer una consulta para contar votos. El problema es que debo de hacerlo con una sola consulta.

Estas son las tablas que tengo:

Tabla Negocios:
id
nombre
departamento
provincia
distrito

En esta tabla se guarda la informacion del negocio junto con el id del departamento, provincia y distrito.

Tabla Ubigeo:
id
name
parent_id

En esta tabla esta guardada toda la informacion geografica del pais. Ya sea departamento, provincia o distrito. Se relacionan por medio del parent id.

Tabla Votos:
id
negocio_id

En esta tabla se guardan los votos hechos a cada negocio.

Puedo listar todos los negocios con los nombres de su departamento, distrito y provincia:

SELECT nego.id, nego.nombre, ubi1.name as departamento_nombre, ubi2.name as provincia_nombre, ubi3.name as distrito_nombre
FROM negocios as nego
JOIN ubigeo as ubi1 on ubi1.id = nego.departamento
JOIN ubigeo as ubi2 on ubi2.id = nego.provincia
JOIN ubigeo as ubi3 on ubi3.id = nego.distrito

Pero nose como hacer para mostrar el conteo de votos de cada negocio.

Mi idea es que el resultado sea algo como esto:
id - nombre - departamento_nombre - provincia_nombre - distrito_nombre - votos

Alguna idea de como hacerlo?

Muchas gracias!
  #2 (permalink)  
Antiguo 28/04/2013, 13:07
 
Fecha de Ingreso: marzo-2013
Mensajes: 13
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Conteo de votos

Para hacer algo rápido que te saque del paso, puedes hacer una subselect a la tabla votos con un count(*), aunque a nivel de rendimiento es una mala solución.
  #3 (permalink)  
Antiguo 28/04/2013, 14:12
Avatar de morfasto  
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 13 años, 3 meses
Puntos: 8
Respuesta: Conteo de votos

Pero como le paso el nego.id a ese subselect para poder contar cuantos votos tiene?
  #4 (permalink)  
Antiguo 28/04/2013, 14:51
Avatar de morfasto  
Fecha de Ingreso: julio-2011
Ubicación: Lima
Mensajes: 291
Antigüedad: 13 años, 3 meses
Puntos: 8
Respuesta: Conteo de votos

He logrado mostrar los negocios que tienen votaciones, pero obvia a los que no tienen xq no hay registros, como hago para que se muestren tambien, pero con 0 votos?

Esta es mi consulta:
Código MySQL:
Ver original
  1. SELECT nego.id, nego.nombre, ubi1.name AS departamento_nombre, ubi2.name AS provincia_nombre, ubi3.name AS distrito_nombre, COUNT(votos.id) AS votos
  2. FROM negocio as nego
  3. JOIN ubigeo AS ubi1 ON ubi1.id = nego.departamento
  4. JOIN ubigeo AS ubi2 ON ubi2.id = nego.provincia
  5. JOIN ubigeo AS ubi3 ON ubi3.id = nego.distrito
  6. JOIN votos ON negocio_id = nego.id
Alguna idea?

Muchas gracias!

Última edición por gnzsoloyo; 28/04/2013 a las 14:59

Etiquetas: conteo, join, select, tabla, votos
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 05:13.