Page 1 sur 1

Limit de résultat sur une 2ème table

Posté : 13 août 2006, 20:10
par Isuka
Bonjour,

Je sèche un peu sur une requête :
J'ai une table "models" avec des infos sur le modèle (id, nom, prenom, age...).
J'ai une autre table "photos" avec mes infos sur les photos des modèles (id, model_id, format, miniature, photo).

Je souhaiterais pour cette requête récuperer toutes entrées de ma table "models" et en même temps récuperer une seule entrée de la table "photos".

Quelque chose du style :

Code : Tout sélectionner

SELECT m.id, m.nom, m.prenom, m.age, m.taille, m.mensurations, p.miniature FROM models AS m, photos AS p WHERE p.model_id = m.id
Mais je voudrais limiter la sélection des images à une seule, ce qui me sortirais en résultat :

id : 1
nom : Campbell
prenom : Naomi
miniature : tn_image01.jpg

id : 2
nom : Schiffer
prenom : Claudia
miniature : tn_image08.jpg

etc...

Merci d'avance :)

Posté : 13 août 2006, 21:44
par zeus
Comment est-ce que tu comptes choisir l'image ? de manière aléatoire ?

Si c'est le cas, il te faut passer par un jointure droite ou gauche qui va prendre l'intégralité de la table model et lui associer une occurence de la table photo

Donc, si tu as plusieurs photos pour un modele, la jointure ne prendra qu'une seule photo.

Code : Tout sélectionner

SELECT m.id, m.nom, m.prenom, m.age, m.taille, m.mensurations, p.miniature FROM models AS m LEFT JOIN photos AS p ON p.model_id = m.id

Posté : 21 août 2006, 18:29
par Isuka
Désolé pour cette réponse tardive, en allumant mon pc la semaine dernière, ya mon CPU qui a grillé (saloperie d'orages !)
Comment est-ce que tu comptes choisir l'image ? de manière aléatoire ?
Peut importe en fait. Soit aléatoirement, soit la première, soit la dernière.
Si c'est le cas, il te faut passer par un jointure droite ou gauche qui va prendre l'intégralité de la table model et lui associer une occurence de la table photo

Donc, si tu as plusieurs photos pour un modele, la jointure ne prendra qu'une seule photo.
En testant ta requête, j'ai autant de modèles qu'il y a d'image associés au modèle :

id : 1
nom : Campbell
prenom : Naomi
miniature : tn_image01.jpg

id : 2
nom : Campbell
prenom : Naomi
miniature : tn_image02.jpg

id : 3
nom : Schiffer
prenom : Claudia
miniature : tn_image08.jpg

J'ai essayé en rajoutant un DISTINCT mais c'est pareil. En plus j'utilise pas souvent les JOIN je capte pas trop son utilisation. Sinon, je ferais à l'ancienne : 2 requêtes :P