MySQL JOIN avec LIMITE 1 sur la table jointe
Cette question tourne autour de la jointure de deux tables tout en limitant les résultats de la table jointe à une seule enregistrez pour chaque correspondance dans le premier tableau.
Dans ce cas, considérons deux tableaux : catégories et produits, où chaque produit appartient à une catégorie. L'objectif est de récupérer chaque catégorie ainsi que le premier produit de cette catégorie.
Pour ce faire, une sous-requête est utilisée pour récupérer la clé primaire du premier produit de chaque catégorie triée par identifiant. Cette clé primaire est ensuite utilisée dans la requête externe pour récupérer la catégorie et les informations sur le produit correspondantes.
La requête peut être structurée comme suit :
SELECT c.id, c.title, p.id AS product_id, p.title AS product_title FROM categories AS c JOIN products AS p ON p.id = ( SELECT p1.id FROM products AS p1 WHERE c.id = p1.category_id ORDER BY p1.id LIMIT 1 )
Cette approche garantit qu'un seul produit l'enregistrement est récupéré par catégorie, répondant efficacement au résultat souhaité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!