Maison  >  Article  >  base de données  >  Comment effectuer une requête multi-tables dans MySQL ?

Comment effectuer une requête multi-tables dans MySQL ?

WBOY
WBOYoriginal
2023-07-30 17:03:321623parcourir

Comment effectuer une requête multi-tables dans MySQL ?

Dans les requêtes de base de données, les requêtes multi-tables sont une exigence courante. Grâce aux requêtes multi-tables, nous pouvons connecter et corréler les données de plusieurs tables pour obtenir des résultats de requête plus précis et plus complets. MySQL propose diverses manières d'effectuer des requêtes multi-tables, notamment en utilisant des instructions JOIN, des sous-requêtes et des requêtes union. Cet article explique comment effectuer des requêtes multi-tables dans MySQL, avec des exemples de code.

  1. Utilisez INNER JOIN pour les requêtes multi-tables
    INNER JOIN est l'une des méthodes de requête multi-tables les plus courantes et les plus couramment utilisées. Elle renvoie les enregistrements qui répondent aux conditions de connexion en connectant les champs associés de deux ou plusieurs tables. Voici un exemple :
SELECT 
    Orders.OrderID,
    Customers.CustomerName,
    Orders.OrderDate
FROM
    Orders
INNER JOIN
    Customers ON Orders.CustomerID = Customers.CustomerID;

La requête ci-dessus renverra les enregistrements de la table Commandes et de la table Clients qui remplissent les conditions de connexion. Les résultats de la requête incluent les champs OrderID, CustomerName et OrderDate.

  1. Utilisez LEFT JOIN pour les requêtes multi-tables
    LEFT JOIN est une autre méthode de requête multi-tables courante. Elle combine tous les enregistrements de la table de gauche (table de gauche) avec les enregistrements qui répondent aux conditions de connexion dans la table de droite (droite). tableau). S'il n'y a aucun enregistrement correspondant dans la table de droite, le champ correspondant dans la table de gauche affichera NULL. Voici un exemple :
SELECT 
    Customers.CustomerName,
    Orders.OrderID
FROM
    Customers
LEFT JOIN
    Orders ON Customers.CustomerID = Orders.CustomerID;

La requête ci-dessus renverra tous les enregistrements de la table Customers et fera correspondre les enregistrements de la table Orders qui remplissent les conditions de connexion. Les résultats de la requête incluent les champs CustomerName et OrderID.

  1. Utilisez RIGHT JOIN pour les requêtes multi-tables
    RIGHT JOIN est l'opposé de LEFT JOIN. Il fait correspondre tous les enregistrements de la table de droite (table de droite) avec les enregistrements de la table de gauche (table de gauche) qui remplissent les conditions de jointure. S'il n'y a aucun enregistrement correspondant dans la table de gauche, le champ correspondant dans la table de droite affichera NULL. Voici un exemple :
SELECT 
    Orders.OrderID,
    Customers.CustomerName
FROM
    Orders
RIGHT JOIN
    Customers ON Orders.CustomerID = Customers.CustomerID;

La requête ci-dessus renverra tous les enregistrements de la table Orders et correspondra aux enregistrements de la table Customers qui remplissent les conditions de connexion. Les résultats de la requête incluent les champs OrderID et CustomerName.

  1. Utilisez FULL OUTER JOIN pour les requêtes multi-tables
    FULL OUTER JOIN est une méthode de requête qui combine LEFT JOIN et RIGHT JOIN. Elle renvoie tous les enregistrements qui remplissent les conditions de connexion et affiche les enregistrements qui ne remplissent pas les conditions comme NULL. Cependant, MySQL ne prend pas directement en charge FULL OUTER JOIN, mais vous pouvez utiliser l'opérateur UNION pour obtenir des effets similaires. Voici un exemple :
SELECT 
    Customers.CustomerName,
    Orders.OrderID
FROM
    Customers
LEFT JOIN
    Orders ON Customers.CustomerID = Orders.CustomerID
UNION
SELECT 
    Customers.CustomerName,
    Orders.OrderID
FROM
    Customers
RIGHT JOIN
    Orders ON Customers.CustomerID = Orders.CustomerID
WHERE
    Customers.CustomerID IS NULL;

La requête ci-dessus renverra tous les enregistrements de la table Clients et les enregistrements de la table Commandes qui remplissent les conditions de connexion, et affichera les enregistrements qui ne remplissent pas les conditions comme NULL.

La requête sur plusieurs tables est l'une des compétences importantes dans la requête de base de données. En utilisant rationnellement les opérateurs et les conditions de connexion, nous pouvons effectuer des requêtes associées sur plusieurs tables en fonction des besoins réels et obtenir des résultats précis et complets. J'espère que cet article vous aidera à comprendre comment effectuer des requêtes multi-tables dans MySQL.

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