Instruction MySQL Select : Détermination de la visibilité des produits à l'aide des paramètres du fabricant
Votre objectif est de construire une requête qui calcule la visibilité des produits en fonction de règles défini dans la table du fabricant. Plus précisément, vous souhaitez déterminer où un produit peut être consulté (par exemple, partout, au Canada uniquement ou aux États-Unis uniquement).
La requête initiale tente d'utiliser une instruction IF/ELSEIF dans une sous-requête pour calculer la visibilité. Cependant, cette approche est incorrecte. Envisagez plutôt d'utiliser une instruction CASE pour évaluer l'état du produit et attribuer le niveau de visibilité approprié.
L'instruction CASE fournie présente un problème mineur : elle évalue toujours la première condition WHEN, quel que soit l'état du produit. Pour résoudre ce problème, supprimez la condition AND de chaque clause WHEN.
La requête révisée suivante devrait fournir le résultat souhaité :
SELECT t2.company_name, t2.expose_new, t2.expose_used, t1.title, t1.seller, t1.status, CASE status WHEN 'New' THEN t2.expose_new WHEN 'Used' THEN t2.expose_used ELSE NULL END as 'expose' FROM `products` t1 JOIN manufacturers t2 ON t2.id = t1.seller WHERE t1.seller = 4238
Cette requête évalue l'état de chaque produit, que ce soit « Nouveau » ' ou 'Utilisé', et renvoie le niveau de visibilité correspondant défini dans la table du fabricant.
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!