Maison >base de données >tutoriel mysql >Comment joindre efficacement quatre tables dans MySQL pour éviter les enregistrements en double ?
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 :
Sortie
Pour les exemples de données fournis, la requête mise à jour renvoie :
| 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!