Il s'agit d'une sélection simple à partir d'une seule table. Le but est de sélectionner quatre produits aléatoires, un de chaque x nombre de catégories, avec quelques limitations «où». J'ai essayé ceci:Sélectionner des lignes aléatoires mais sans doublons de valeurs d'une colonne
SELECT pName,
pID
from products
WHERE pDisplay=1
AND pFeatured=1
GROUP BY pCategory
ORDER BY RAND()
LIMIT 0,4
Ce genre de travaux, mais il retourne toujours le même produit d'une catégorie donnée. Je souhaite varier les produits présentés, tout en ne montrant qu'un seul produit pour une catégorie donnée.
J'ai aussi essayé:
SELECT DISTINCT(pCategory)
pName,
pID
from products
WHERE pDisplay=1
AND pFeatured=1
ORDER BY RAND()
LIMIT 0,4
Je pense peut-être qu'il a besoin de deux sélectionne -le premier à obtenir une 4 catégories au hasard le deuxième à choisir une ligne aléatoire de chacun d'eux, mais a. je ne suis pas sûr de savoir comment faire cela, et b. préférerait utiliser une seule requête si possible.
Merci! Cela fonctionne parfaitement - vous aviez raison sur le précédent, il a retourné plusieurs produits d'un chat donné. – Katherine