Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/09/2013, 04:16
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta SQL en dos tablas mostrar solo 2 filas de cada categoría

A pesar de lo que parece, la consulta que necesitas no es una consulta simple. Hay varias formas de hacerlo, pero esta sería una:
Código MySQL:
Ver original
  1. SELECT     p.id, c.cid, c.categoria, p.producto
  2.   (SELECT
  3.     p.id, c.cid,
  4.     c.categoria,
  5.     p.producto,
  6.     IF(@prod<> p.id, @cat:=@cat+1, @cat) cat,
  7.      @prod:= p.id
  8.   FROM
  9.     dat_prod p INNER JOIN dat_prod_cat c ON p.cid = c.cid
  10.     JOIN (SELECT @cat := 0, @prod:=0)
  11.   ORDER BY p.id, c.categoria) T1
  12. WHERE cat <=2;
No estoy seguro de su resultado exacto, porque es posible que necesite de un nivel de ordenamiento más, pero la idea andaría.
Todo otro camino que yo veo requiere de iteraciones y usar stored procedures.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)