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

Consulta muy grande y dificil

Estas en el tema de Consulta muy grande y dificil en el foro de Mysql en Foros del Web. Hola foreros, Tengo problemas con una consulta mas bien no se como hacerla y sea posible les platico desarrollo un directorio. Mis tablas: categorias id_categoria ...
  #1 (permalink)  
Antiguo 20/08/2011, 11:37
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Consulta muy grande y dificil

Hola foreros,

Tengo problemas con una consulta mas bien no se como hacerla y sea posible les platico desarrollo un directorio.

Mis tablas:

categorias
id_categoria
nombre_categoria



subcategorias
id_subcat
id_categoria
nombre_sub


categoria_subcategoria
id
id_categoria
id_subcategoria
id_negocio


comentarios
id
id_negocio
id_categoria
comentario

negocios
visitas



Además de una variable GET "categoria"



Lo que quiero lograr es que dependiendo de la categoria especificada por GET me muestra sus subcategorias además saber cuantos negocios estan en esa subcategoria tambien necesito mostrar los ultimos 5 comentarios de esa categoria y los negocios con mas visitas y los ultimos 5 negocios agregados a esa categoria.


No se si se pueda yo lo he logrado pero con consultas simples y hago consulta dentro de los while y creo que no es buena idea eso


Espero alguien pueda ayudarme ya tengo toda la semana con esto y ni idea de como lograrlo


Saludos
  #2 (permalink)  
Antiguo 20/08/2011, 12:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Consulta muy grande y dificil

Arsenal, p

primero debes resolver cuestiones que tienen que ver con la estructura. Creo que en la tabla categoria_subcategoria te sobra el campo id_categoria y que la tabla debería llamarse subcategoria_negocio

subcategoria_negocio
id
id_subcategoria
id_negocio

Piensa que una subcategoría siempre se relaciona con categoría, al menos en tu estructura (piensa en si una subcategoría podría pertenecer a dos categorías distintas, lo que te obligaría a añadir una tabla nueva), y que un negocio se relaciona con una o varias subcategorías. Si tienes los negocios de las subcategorías de una categoría tienes los negocios de esa categoría. En la tabla comentarios parece sobrar el campo id_categoria, pues un negocio se relaciona con la subcategoría o subcategorías. Y por otra parte no sé si es necesario que haya referencia a un id_subcategoria en los comentarios, pues si el negocio sólo pertenece a una subcategoría (no sé si es el caso, eso tienes que aclararlo tú), no haría falta; sólo en el caso de que pudiera pertenecer a varias subcategorías y los comentarios se hicieran por subcategorías, te interesaría tener ese campo id_subcategoria en esa tabla.
De momento es lo que se me ocurre. Primero deberías aclarar estos puntos. Luego vendrán las consultas.

Piensa si te interesa más esta estructura que te propongo
  #3 (permalink)  
Antiguo 20/08/2011, 13:01
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Consulta muy grande y dificil

Hola jurena :)

Tienes razon hay muchas cosas que sobran se repiten, creo que como dices es lo mejor

categorias
id_categoria
nombre_categoria



subcategorias
id_subcat
id_categoria
nombre_sub

subcategoria_negocio
id
id_subcategoria
id_negocio

comentarios
id
id_negocio
id_subcategoria
comentario

negocios
visitas


Aclaraciones

Una subcategoria puede estar en una o más categorías.
Un negocio puede estar estar en una o mas subcategorías.
Los comentarios son para los negocios.


Yo la estructure asi por lo siguiente,

1. Primero muestro en una página las categorias, ejemplo Belleze y salud (43) donde 43 es el número de negocios registrados en esa categoria. (categorias.php)

2. Despues al entrar a la categoria "Belleza y Salud" mostrar las subcategorías, ejemplo Salón de Belleza (3) donde 3 es total de negocios de esa subcategoria ahi mismo en esta misma página me interesa saber los ultimos 5 comentarios de la categoria "Belleza y Salud" asi como los negocios más visitados y los 5 ultimos negocios de esa categoria "Belleza y Salud" (todo eso en la pagina subcategorias.php)

Pues eso seria pero si tienes razón las cosas deben ser como dices, pero ya lo de la consulta en mysql desconosco como relacionar todo.

Saludos y gracias
================================================
Lo he pensado un poco mejor no sería más fácil así?
categorias
id_categoria
nombre_categoria

subcategorias
id_subcat
nombre_sub


categoria_subcategoria_negocio
id
id_categoria
id_subcategoria
id_negocio

O ya ni se ya no me da la cabeza..

Saludos

Última edición por arsenal; 20/08/2011 a las 13:42
  #4 (permalink)  
Antiguo 22/08/2011, 05:53
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Consulta muy grande y dificil

Creo que esta estructura te permitiría lo que quieres, que una subcategoría pueda pertenecer a varias categorías y que un negocio pueda pertenecer a varias subcategorías de una o varias categorías. Por otro lado, los comentarios se hacen sobre un negocio dentro de una subcategoría, ¿o no? Mira a ver si esto te convence. Luego iremos a las consultas.

categorias
id_categoria
nombre_categoria

subcategorias
id_subcategoria
nombre_subcaegoria

negocios
id_negocio
nombre_negocio

comentarios
id_comentario
id_negocio
id_subcategoria

categoria_subcategoria
id_catsubcat
id_categoria
id_subcategoria

subcategoria_negocio
idsubcat_negocio
id_subcategoria
id_negocio

Última edición por jurena; 22/08/2011 a las 06:00
  #5 (permalink)  
Antiguo 22/08/2011, 09:48
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Consulta muy grande y dificil

Me parece muy bien jurena asi me gusta :) es lo que necesito para lograr lo que quiero.

He agregado otra cosa mas dificil creo quisiera que en categorias.php donde solo muestro las categorias con los totales de negocios registrados a ella me muestre por lo menos 3 subcategorias ejemplo,

Belleza y Salud (4)
Esteticas, Salon de bellezas, Spas.


Saludos y muchas gracias
  #6 (permalink)  
Antiguo 02/09/2011, 14:01
Avatar de arsenal  
Fecha de Ingreso: agosto-2008
Mensajes: 65
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Consulta muy grande y dificil

Bueno pues ya he podido lograr la primera parte (bueno a medias) esta es la estructura final de mi base de datos

categorias
id_categoria
nombre_categoria

subcategorias
id_subcategoria
nombre_subcaegoria

categoria_subcategoria
id_catsubcat
id_categoria
id_subcategoria

subcategoria_negocio
idsubcat_negocio
id_subcategoria
id_negocio

Bien con esta consulta:

Código MySQL:
Ver original
  1. SELECT c.id, c.categoria,  count( e.subcategoria ) total  
  2.         FROM subcategorias_negocios e
  3.         RIGHT JOIN categorias_subcategorias cs ON e.subcategoria = cs.subcategoria
  4.         RIGHT JOIN subcategorias s ON cs.subcategoria = s.id
  5.         RIGHT JOIN categorias c ON cs.categoria = c.id
  6.         GROUP BY c.categoria, c.id ORDER BY c.categoria ASC

He logrado hacer que me muestre todas las categorias y con su total de negocios que tiene cada una de estas categorias, ejemplo..

Categoria 1(20)
Categoria 2(10)
y así..


Lo que ahora no podido lograr es como hacerle para que además de que me muestre la categora con sus totales me muestre 3 subcategorias, o sea:

Categoria 1 (20)
Subcategoria 1 (23), subcategoria 2 (22)

Categoria 2 (10)
otra Subcategoria 1 (11), otra subcategoria 2 (5)

Saludos y gracias de antemano

Etiquetas: dificil, grande, 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 22:22.