INNER JOIN: limite de 0,1 sur la seconde table
J'ai 2 tables, l'une appelée "produits" et un "images".
Le tableau "images" tenir les images de chaque produits, de sorte que je peux avoir 5 image par produit.
Je veux faire une sélection qui retrive seulement 1 image pour chaque produit. Je suis nouveau sur se joint donc je ne sais pas comment résoudre ce problème.
Je suis en train d'essayer avec:
SELECT *
FROM products
INNER JOIN images ON products.id=images.prod_id
WHERE products.cat='shoes'
J'ai besoin d'ajouter une Limite de 0,1 sur les images de la table. Comment je peux faire?
Merci d'avance.
Avez-vous un numéro d'identification pour les images? Si vous avez la garantie que les images sont numérotées de 0 - 4 ajoutez ensuite l'endroit OÙ les images.ID = 0 ou quelque chose comme ça.
OriginalL'auteur Luciano | 2010-07-05
Vous devez vous connecter pour publier un commentaire.
Il est préférable d'éviter les sous-requêtes parce qu'ils sont lents dans mysql.
Si vous voulez obtenir une image associée au produit,
vous pouvez le faire vite, mais pas de très belle manière:
Si vous souhaitez obtenir une première image( par critères ), s'appliquent groupwise max techniques
OriginalL'auteur Naktibalda
Peut-être une sous-sélection est une meilleure solution ici.
Quelque chose comme ceci:
OriginalL'auteur Sjoerd
Prendre un coup d'oeil à DISTINCTES
OriginalL'auteur erenon
La clé ici est sous-requêtes corrélées.
+1: Le monde serait un endroit sombre et impitoyable de la place sans sous-requêtes corrélées.
Poneys - vous peut-être raison, je ne suis pas sûr, de ne pas avoir une DB en face de moi. Dans ce cas, déplacez-la corrélation dans le
select
clause d'obtenir la même chose.oh, et à propos du produit cartésien. La corrélation de la requête est que le retour à 1 rangée, donc, c'est vraiment ok.
OriginalL'auteur Donnie
Ce sera le retour de la première image trouvée pour votre produit et tous les détails du produit.
Si vous voulez vous recherchez des multiples produits alors je suggère de faire 2 requêtes.
Complexes unique requêtes peuvent assez souvent finissent par être plus cher qu'un couple de/quelques petites requêtes.
Cette retournera un seul produit comme le
limit
est appliqué à l'extérieur de la requête.OriginalL'auteur Lizard