Maison >base de données >tutoriel mysql >Comment joindre efficacement quatre tables dans MySQL pour éviter les enregistrements en double ?

Comment joindre efficacement quatre tables dans MySQL pour éviter les enregistrements en double ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-19 19:49:11344parcourir

How to Efficiently Join Four Tables in MySQL to Avoid Duplicate Records?

Joindre plusieurs tables dans MySQL avec INNER JOIN

Lorsque vous travaillez avec des bases de données relationnelles telles que MySQL, joindre des tables vous permet de récupérer des données à partir de plusieurs tableaux basés sur des colonnes communes. Ce didacticiel vous guide tout au long du processus de jointure de trois tables : commandes, prix_produits et produits.

Énoncé du problème

Pour récupérer des produits liés à un utilisateur spécifique et inclure un lien hypertexte vers chaque produit, un quatrième tableau, des listes, doit être joint. Cependant, la requête actuelle renvoie les enregistrements en double de la table des listes.

Solution

Pour résoudre ce problème, modifiez la requête comme suit :

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 
  AND l.url = 'test.com';

Explication :

  • l.id = 233 et l.url = 'test.com' sont supplémentaires conditions qui limitent les résultats à la liste spécifique avec l'ID 233 et l'URL test.com.
  • Les clauses INNER JOIN garantissent que seuls les enregistrements correspondants des quatre tables sont renvoyés.

Sortie

Pour les exemples de données fournis, la requête mise à jour renvoie :

| ID | NOM | URL | USER_ID | PRICING_ID |

| 33 | tester le produit | test.com | 7 | 37 |

Cette sortie inclut l'ID du produit, le nom, l'URL de la liste, l'ID utilisateur et l'ID de tarification pour l'utilisateur spécifique avec l'ID utilisateur 7.

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!

Déclaration:
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