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
Libérer: 2024-12-19 19:49:11
original
342 Les gens l'ont consulté

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';
Copier après la connexion

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!

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