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

Conocer cantidad empresas que tienen un producto específico

Estas en el tema de Conocer cantidad empresas que tienen un producto específico en el foro de Mysql en Foros del Web. Buenas, me encuentro en un aprieto medio raro, y eso que creí que iba a ser fácil, pero quizá me falte aun mas conocimientos de ...
  #1 (permalink)  
Antiguo 26/05/2014, 16:52
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 2 meses
Puntos: 175
Conocer cantidad empresas que tienen un producto específico

Buenas, me encuentro en un aprieto medio raro, y eso que creí que iba a ser fácil, pero quizá me falte aun mas conocimientos de BD... acudo con la siguiente pregunta.

Tengo una tabla de Productos_Disponibles, otra de Productos_adheridos y otra de Empresas_registradas.

La tabla de productos disponibles es en cierta forma estática. Ahi se cargan los productos

Cuando registro una empresa, cargo los datos de la misma en su tabla correspondiente.

Una vez cargado los datos de la empresa, puedo seleccionar los productos ya existentes de la tabla Productos_Disponibles y cargarla en la tabla de Productos_adheridos. espero no esten perdidos hasta aqui.

La idea es que el usuario pueda crear una empresa y cargar productos a esta empresa, pero solamente puede cargar los productos que existan en la tabla Productos_Disponibles. Esto está logrado.

La idea numero 2 y aqui viene el drama, es que un usuario cualquiera, que no sea la empresa... puedes ser tú, o yo, quien sea... busque un producto X.. supongamos "TOMATES" hacer esto por LIKE o MATCH AGAIST es sencillo, lo que no logro es que me despligue los resultados y me diga cuantas empresas poseen ese producto. Ejemplificando

########################
PALABRA BUSCADA: tomates
########################


Tomates rojos - 10 empresas han adherido este producto

Tomates perita - 7 empresas han adherido este producto

Tomates Santa Cruz - 10 empresas han adherido este producto

#############################################

cual es el fin de esto? pues que cuando seleccione por ejemplo, "tomates rojos" me lleve a ver cuales son las empresas que tienen ese producto, aunque ya es otra cosa...

La tabla Productos_adheridos recibe los ID foráneos de Productos_Disponibles y Empresas_registradas para funcionar.

Espero una ayuda si es posible... hacer consultas para traer resultados es fácil, lo que no logro es saber cuantas empresas tienen ese producto, pero a travez de una unica busqueda con una variable.

Gracias.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #2 (permalink)  
Antiguo 27/05/2014, 00:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 8 meses
Puntos: 300
Respuesta: Conocer cantidad empresas que tienen un producto específico

No nos dices si una empresa puede aparecer dos veces para un mismo producto. Para evitar errores de cómputo en ese punto, uso DISTINCT. Si no es el caso, puedes quitar DISTINCT. Tampoco nos dices los nombres de los campos, de modo que he tenido que inventarlos. No he probado la consulta.
Código MySQL:
Ver original
  1. SELECT COUNT(DISTINCT pa.IDempresas_registradas) total_empresas, pd.nombreproducto
  2. FROM Productos_adheridos pa INNER JOIN Productos_Disponibles pd
  3.    ON pa.IDproductos_Disponibles = pd.IDproductos_Disponibles
  4.  GROUP BY pa.IDproductos_Disponibles

Última edición por jurena; 27/05/2014 a las 03:47
  #3 (permalink)  
Antiguo 27/05/2014, 09:34
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 2 meses
Puntos: 175
Respuesta: Conocer cantidad empresas que tienen un producto específico

Gracias, Jurena, se trata de un foro, lo que no tengas, lo pides y a las ordenes, decidi no poner nada antes de no tener al menos un feedback ya que el post es muy largo.
No Pido que se abstraigan inventando nada... solo saber si se comprende el problema, y ya luego ver los campos, mi tabla es de prueba nada más, tampoco voy spamear el foro con ultra mensajes. Solo por eso. I'm learning.

La verdad no lo había agrupado, asi que segui tu sugerencia mas el count, aunque sin el distinct y me fucionó...

Código MySQL:
Ver original
  1. SELECT pd.productoDisponible, m.marca, pp.id_productoDisponible, cp.categoria_productos, count(*)  AS empresas
  2.                             FROM productos_perfil AS pp
  3.  
  4.                             INNER JOIN productos_disponibles AS pd
  5.                             ON pp.id_productoDisponible = pd.id_productoDisponible
  6.  
  7.                             INNER JOIN categoria_productos AS cp
  8.                             ON pp.id_categoriaProductos = cp.id_categoriaProductos
  9.  
  10.                             INNER JOIN marcas AS m
  11.                             ON pp.id_marca = m.id_marca
  12.  
  13.                             WHERE pd.productoDisponible LIKE LOWER('%$prod%')
  14.                             OR m.marca LIKE LOWER('%$prod%')
  15.  
  16.                             GROUP BY(pd.productoDisponible)
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Etiquetas: cantidad, conocer, empresas, producto, registro, 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 23:45.