
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 :
1 2 3 4 5 6 7 | 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;
|
Copier après la connexion
Considérez le scénario suivant : vous disposez de quatre tables :
-
commandes : (user_id, pricing_id)
-
products_pricing : (id, product_id)
-
produits : (id, nom)
-
listes : (id, user_id, url)
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 :
1 2 3 4 5 6 7 | 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 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 :
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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
Dans cette requête, nous avons :
- INNER JOIN listings AS l ON l.user_id = o.user_id : Ceci joint la table des listes à la table des commandes en fonction de la colonne user_id.
- WHERE o.user_id ='7' : Cela filtre les résultats pour inclure uniquement les lignes où le user_id dans le tableau des commandes est égal à 7.
- AND l.id = 233 AND l.url = 'test.com' : cela ajoute des filtres supplémentaires pour garantir que seules les lignes avec un ID (233) et une URL spécifiques (« test.com ») sont incluses dans le résultat.
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!