2010-09-25 6 views
1

Je ne parle pas couramment MYSQL. Ce que j'essaye de faire est d'avoir une table qui a une liste de galeries avec des numéros d'identification uniques. J'ai une autre table ImageData qui a des images qui peuvent être jusqu'à 1000 qui sont liées à chaque GalleryID qui est dans la première table. Je veux faire une sélection qui va obtenir 5 enregistrements aléatoires de chaque GalleryID. J'essaye de faire ceci sans faire une boucle et des coups multiples à la base de données.MYSQL Sélectionnez 5 enregistrements d'une table en fonction de plusieurs valeurs différentes d'une autre

Les tableaux sont les suivants Galeries -> GalleryID -> GalleryName

imageData -> ImageID -> ImageName -> GalleryID

J'espère que cela a du sens.

+0

Qu'est-ce que les types de données sont vos identifiants et s'ils sont numériques, sont-ils quelque chose comme Identité/séquences? – InSane

Répondre

0

Salut Randy bienvenue au club. Voici une solution simple et rapide à votre scénario. Profitez

sélectionnez g.GalleryName, i.imageName des galeries g, imageData i, (SELECT gl.Galleryid des galeries gl ORDER BY RAND() LIMIT 5) m où m.galleryID = i.galleryID

+0

Cela ne fonctionnerait pas - un sous-select ne peut retourner qu'une seule ligne de données; vous essayez de mettre plus de cinq ans. –

Questions connexes