Maison > base de données > tutoriel mysql > Comment filtrer efficacement les résultats de jointure interne MySQL sur plusieurs tables ?

Comment filtrer efficacement les résultats de jointure interne MySQL sur plusieurs tables ?

Linda Hamilton
Libérer: 2024-12-20 02:25:09
original
347 Les gens l'ont consulté

How to Efficiently Filter MySQL Inner Join Results Across Multiple Tables?

Requête de jointure interne MySQL sur plusieurs tables avec filtrage supplémentaire

Vous essayez de joindre plusieurs tables dans MySQL à l'aide de jointures internes. En particulier, vous essayez de récupérer des informations sur les produits, les prix et les listes d'un utilisateur spécifique. Cependant, l'inclusion de la table de listes dans votre requête entraîne des données supplémentaires indésirables dans la sortie.

Analysons votre requête et modifions-la pour résoudre le problème :

SELECT *
FROM orders
  INNER JOIN products_pricing
    ON orders.pricing_id = products_pricing.id
  INNER JOIN products
    ON products_pricing.product_id = products.id
WHERE orders.user_id = '7'
Copier après la connexion

Cette requête récupère tous les enregistrements pour l'ID utilisateur '7' de la table des commandes, y compris les informations sur les prix et les produits associés.

Pour inclure la table des listes et limiter les résultats à une liste spécifique, vous devez ajouter une condition supplémentaire :

SELECT
  p.id,
  p.name,
  l.url,
  o.user_id,
  o.pricing_id
FROM orders AS o
INNER JOIN products_pricing AS pp
  ON o.pricing_id = pp.id
INNER JOIN products AS p
  ON pp.product_id = p.id
INNER JOIN listings AS l
  ON l.user_id = o.user_id
WHERE
  o.user_id = '7'
  AND l.id = 233  -- Add condition to filter by specific listing
  AND l.url = 'test.com'  -- Add condition to filter by specific url
Copier après la connexion

Cette requête modifiée ajoute deux conditions à la clause WHERE :

  • l.id = 233 filtre les résultats pour inclure uniquement la liste avec l'identifiant '233'.
  • l.url = 'test.com' filtre davantage les résultats pour inclure uniquement les annonces avec l'URL spécifique 'test.com'.

Cette requête mise à jour devrait vous fournir le résultat souhaité : un tableau contenant des informations sur les produits, les prix et les listes pour l'utilisateur avec l'ID utilisateur '7', filtré par le spécifique conditions d'inscription.

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