Maison > base de données > tutoriel mysql > Comment puis-je récupérer toutes les catégories et leurs prix minimum/maximum, y compris les catégories sans produits, dans MySQL ?

Comment puis-je récupérer toutes les catégories et leurs prix minimum/maximum, y compris les catégories sans produits, dans MySQL ?

Linda Hamilton
Libérer: 2024-12-19 00:07:10
original
855 Les gens l'ont consulté

How Can I Retrieve All Categories and Their Minimum/Maximum Product Prices, Including Categories Without Products, in MySQL?

Sélection parmi plusieurs tables avec correspondance manquante dans MySQL

Pour interroger efficacement plusieurs tables, même dans les scénarios où toutes les lignes ne sont pas dans une seule table avoir des entrées correspondantes dans un autre, MySQL fournit le concept de jointures externes. Considérons le scénario d'une boutique en ligne avec des tableaux de catégories et de produits.

Supposons que nous souhaitions récupérer toutes les catégories et calculer les prix minimum et maximum pour chacune. Cependant, nous souhaitons inclure les catégories sans aucun produit et définir leurs prix minimum et maximum sur 0. La requête d'origine :

SELECT
sc.*, MIN(s.price) AS minp, MAX(s.price) AS maxp
FROM categories AS sc, products AS s
WHERE s.ownerid=sc.id
GROUP BY sc.id
Copier après la connexion

Exclut les catégories sans produits en raison de la condition de jointure interne. Pour inclure toutes les catégories, nous utilisons un LEFT JOIN :

SELECT
    sc.*,
    IFNULL(MIN(s.price), 0) AS minp,
    IFNULL(MAX(s.price), 0) AS maxp
FROM categories AS sc
LEFT JOIN products AS s
ON s.ownerid = sc.id
GROUP BY sc.id
Copier après la connexion

Le LEFT JOIN préserve toutes les lignes de la table des catégories (sc), permettant à la requête de récupérer toutes les catégories, y compris celles sans produits. La fonction IFNULL définit les valeurs nulles (qui se produisent lorsqu'il n'y a pas de produits correspondants) à 0, garantissant que minp et maxp sont toujours renvoyés avec une valeur valide.

Cette approche garantit que la requête récupère toutes les catégories, indépendamment de s'ils ont des produits correspondants, et il attribue correctement 0 pour les informations de prix manquantes.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal