J'ai 2 tables, une table de produits et une table d'images. Les produits peuvent avoir plus d'une image par enregistrement. J'ai besoin d'une instruction SQL qui listera 1 image par produit plutôt que toutes les images par produit.SQL: Instruction pour afficher 1 enregistrement enfant par parent dans une relation un-à-plusieurs
A revus à la baisse par exemple de mon effort actuel:
SELECT Product.RefCode, Img.ImgPath
FROM Product INNER JOIN (
SELECT ProductImg.ImgPath, ProductImg.PrdFK
FROM ProductImg
LIMIT 0,1) AS Img ON Product.PrdID = Img.PrdFK;
L'exemple ci-dessus renvoie 0, cependant, si je retire la LIMITE 0,1 de la Sous SELECT j'obtenir une liste complète de tous les produits et toutes les images.
Je veux juste 1 enregistrement d'image par enregistrement de produit à retourner. J'ai corrigé le code «un programmeur» vers MySQL et cela fonctionne très bien.
SELECT Product.RefCode,
(Select ProductImg.ImgPath
From ProductImg
Where Product.PrdID = Img.PrdFK LIMIT 0,1) AS ImgPath
FROM Products
Pour une raison quelconque, en essayant la solution de "Bill Karwin", le serveur a été chargé pendant longtemps.
Le mot clé TOP est la propriété de Microsoft SQL Server (et de Sybase). –
Désolé, je ne le savais pas. Merci beaucoup. –
J'ai fait une petite révision (voir ci-dessus) mais la déclaration a bien fonctionné, merci. – ticallian