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

Planteamiento Erroneo en consulta mysql

Estas en el tema de Planteamiento Erroneo en consulta mysql en el foro de Mysql en Foros del Web. Hola, Haber si podeis echarme un cable, os explico un poco haber si me dais alguna idea de como lo haríais vosotros. Gracias por adelantado. ...
  #1 (permalink)  
Antiguo 20/06/2014, 14:51
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 12 años
Puntos: 3
Planteamiento Erroneo en consulta mysql

Hola,
Haber si podeis echarme un cable, os explico un poco haber si me dais alguna idea de como lo haríais vosotros. Gracias por adelantado.

Que hago yo:
Extraigo de una tabla el nombre de las empresas que me interesan para después hacer una consulta con esas empresas en otra tabla, lo hago de la siguiente manera:
Código MySQL:
Ver original
  1. SELECT nombreEmpresa FROM empresas
  2. ORDER BY puntuacion DESC limit 0,5

En la siguiente consulta, me interesaría sacar 5 productos pero que sea 1 de cada una de ellas ordenados por el orden anterior (empresa con mas puntuacion) y despues dentro de esa empresa el mas reciente, fecha DESC.
Actualmetne lo tengo así, evidentemente sin éxito:
Código MySQL:
Ver original
  1.     (SELECT * FROM productosEmpresas WHERE nombreEmpresa IN ($empresasIn)
  2.     ORDER BY fecha DESC) AS aliasempresas
  3. GROUP BY nombreEmpresa LIMIT 0,5

Problemas con los que me encuentro:
- Creo que el planteamiento general no es correcto
- No me respeta el orden adquirido en la primera consulta, creo que por hacerlo con el IN
- Si una de las empresas no tuviera productos, pues en vez de mostrarme 5 resultados me mostraría 4,3,2...

Resumen de lo que intento conseguir:
Sacar 5 productos y que cada uno de esos productos sea de una empresa distinta (ordenado por empresa con mas puntuación) y además que esos productos sean los mas recientes de sus respectivas empresas y además para rizar más el rizo que si en una de las empresas con mayor puntuación no hay producto coja el producto de la siguiente empresa con mayor puntuación, de tal forma que siempre muestre 5 productos.

Madre mia la que estoy liando!
Ayuda! que alguien me haga ver el camino porque creo que me estoy liando yo solo

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.

Última edición por gnzsoloyo; 20/06/2014 a las 16:14
  #2 (permalink)  
Antiguo 23/06/2014, 01:49
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Planteamiento Erroneo en consulta mysql

Lo que quieres hacer no se puede hacer en una query, debes hacerlo con progrmación (externa OFF TOPIC), define cada una de las querys por separado, no intentes sacar los productos de todas las empresas seleccionadas en una sola query, acaba de definir que producto vas a seleccionar o debe ser cualquiera de esa empresa ademas del mas reciente.

La primera query ya la tienes.

A partir del resultado debes ejecutar 2x5 querys para obtener los 10 productos que buscas.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 01/07/2014, 06:38
 
Fecha de Ingreso: noviembre-2012
Mensajes: 76
Antigüedad: 12 años
Puntos: 3
Respuesta: Planteamiento Erroneo en consulta mysql

Si, de esa manera ya se hacerlo, pero pensé que hacer muchas consultas era perjudicial, por eso intenté averiguar si había alguna manera de hacerlo con una sola o a lo sumo dos.
Grqacias igualmente por tu respuesta.
Mis agradecimientos!
  #4 (permalink)  
Antiguo 01/07/2014, 06:46
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Planteamiento Erroneo en consulta mysql

Si que en general es mejor menos query que mas querys. Pero siempre que puedas obtener la información que necesitas.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: erroneo, select, sql, 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 13:49.