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

Ordenar resultados de tres tablas

Estas en el tema de Ordenar resultados de tres tablas en el foro de Mysql en Foros del Web. Hola, no se me ocurre como sería la consulta que tengo que realizar para generar un ranking de registros de 3 tablas distintas. Lo que ...
  #1 (permalink)  
Antiguo 12/10/2009, 11:42
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 4 meses
Puntos: 1
Ordenar resultados de tres tablas

Hola, no se me ocurre como sería la consulta que tengo que realizar para generar un ranking de registros de 3 tablas distintas.

Lo que necesito es que me cuente la cantidad de registros que hay en las 3 tablas y luego ordenarlos de mayor cantidad a menor en base al resultado en la misma consulta. No se si usar un COUNT junto con un ORDER BY, pero no se como se podría hacer.

Las tablas son:
gastronomia_comentarios
boliches_comentarios
bares_comentarios


y en ellas hay dos campos que deberían estar en 1 (true) para que sean contadas por la sentencia. Los campos son: publicado y votado.

En lenguaje humano la consulta sería: Seleccionar registros de las tres tablas, donde votado y publicado sean igual a 1 y ordenar de mayor a menor según cantidad de comentarios (registros), limitando la salida a 10 registros.

Cualquier cosa que no se entienda vuelvo a explicar.

Muchas gracias!
  #2 (permalink)  
Antiguo 13/10/2009, 16:45
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 2 meses
Puntos: 46
Respuesta: Ordenar resultados de tres tablas

Hola.

eso hasta parese tarea pero si me pasas la estructura de tus tablas y lo que has intentado te puedo ayudar
  #3 (permalink)  
Antiguo 15/10/2009, 14:04
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: Ordenar resultados de tres tablas

Tabla:

Código:
gastronomia_comentarios
id     id_gastronomia     votado     publicado
xx    2                           1              1
xx    1                           0              1
xx    2                           1              0
xx    3                           1              1
xx    2                           1              1

2 conteos para id_gastronomia 2
1 conteo para id_gastronomia 3


boliches_comentarios
id     id_boliche     votado     publicado
xx    1                   1              1
xx    2                   0              1
xx    2                   1              0
xx    5                   1              1
xx    2                   1              1

1 conteo para id_boliche 1
1 conteo para id_boliche 5
1 conteo para id_boliche 2

bares_comentarios
id     id_bar     votado     publicado
xx    1             1              1
xx    2             0              1
xx    3             1              0
xx    4             1              1
xx    5             1              1

1 conteo para id_bar 1
1 conteo para id_bar 4
1 conteo para id_bar 5

Resultado global (ordena de mayor cantidad de conteos a menor)
2 conteos para id_gastronomia 2
1 conteo para id_gastronomia 3
1 conteo para id_boliche 1
1 conteo para id_boliche 5
1 conteo para id_boliche 2
1 conteo para id_bar 1
1 conteo para id_bar 4
1 conteo para id_bar 5

Mas o menos se entiende lo que quiero??
  #4 (permalink)  
Antiguo 16/10/2009, 09:47
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 2 meses
Puntos: 46
Respuesta: Ordenar resultados de tres tablas

Hola.

mira de entrada todas esa tablas la puedes considerar como una sola a la que llames "COMENTARIOS" y en esta englobar los comentarios de TODAS las categorias aunado a esto UNA SOLA tabla en la que registres las categorias, si haces eso te simplificaria considerablemente la consulta que quieres generar.

suerte y cualquier duda con respecto al modelado de esto aqui estamos para apoyarte
  #5 (permalink)  
Antiguo 16/10/2009, 19:45
 
Fecha de Ingreso: noviembre-2005
Ubicación: Córdoba - Argentina
Mensajes: 155
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: Ordenar resultados de tres tablas

Gracias por responder lair, pero me olvidé de aclarar eso. No puedo unificar las tablas, ya que contienen otros campos y estos son los únicos que tienen de igual entre ellos. Por eso es el lio!
  #6 (permalink)  
Antiguo 18/10/2009, 02:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Ordenar resultados de tres tablas

Nacho 004, a ver si te sirve esto:
Código sql:
Ver original
  1. (SELECT COUNT(*)totcom, 'gastronomia_comentarios' AS tabla, id_gastronomia AS ID
  2. FROM `gastronomia_comentarios`
  3. WHERE votado = 1 AND publicado = 1 GROUP BY id_gastronomia)
  4. UNION ALL
  5. (SELECT COUNT(*), 'bares_comentarios', id_bares
  6. FROM `bares_comentarios`
  7. WHERE votado = 1 AND publicado = 1 GROUP BY id_bares)
  8. UNION ALL
  9. (SELECT COUNT(*), 'boliches_comentarios', id_boliches
  10. FROM `boliches_comentarios`
  11. WHERE votado = 1 AND publicado = 1 GROUP BY id_boliches) ORDER BY totcom DESC, tabla
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 19:53.