Maison >base de données >tutoriel mysql >Comment joindre efficacement plusieurs tables dans MySQL pour récupérer des données associées ?
Joindre plusieurs tables dans MySQL à l'aide de la jointure interne
Dans MySQL, l'instruction INNER JOIN vous permet de combiner des enregistrements de plusieurs tables en fonction d'un colonne commune. Pour effectuer une jointure multi-tables, vous pouvez utiliser la syntaxe suivante :
SELECT columns FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column [...] INNER JOIN table_n ON table_n-1.column = table_n.column;
Considérez le scénario suivant : vous disposez de quatre tables :
Vous souhaitez récupérer tous les produits d'un utilisateur spécifique (user_id = 7) et les hyperliens pour chaque produit en utilisant l'URL correspondante depuis le tableau des listes.
Requête originale :
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';
Cette requête renverra tous les produits de l'utilisateur avec l'ID 7, mais elle n'inclura pas l'URL de chaque produit. .
Requête révisée :
Pour inclure l'URL de chaque produit, vous peut ajouter un autre INNER JOIN à la table des listings :
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';
Dans cette requête, nous avons :
En utilisant cette requête révisée, vous pouvez récupérer avec succès les produits pour l'utilisateur spécifié, ainsi que les URL correspondantes pour les lier.
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!