Maison  >  Article  >  base de données  >  table associée aux requêtes MySQL

table associée aux requêtes MySQL

WBOY
WBOYoriginal
2023-05-08 09:35:072597parcourir

Dans la plupart des cas, la base de données contient plusieurs tables. Dans un système de base de données, il est souvent nécessaire d'interroger les données de plusieurs tables, ce que l'on appelle une requête de jointure SQL. Dans MySQL, la clause JOIN est requise pour implémenter les requêtes associées. Dans cet article, nous verrons comment interroger les données des tables associées dans MySQL à l'aide de la clause JOIN.

  1. Qu'est-ce qu'une requête connexe ?

De manière générale, une table dans une base de données contiendra de nombreuses données. L'objectif principal d'une requête de jointure est d'extraire les données de plusieurs tables et de combiner les données de ces tables pour générer une vue complète contenant les informations requises.

Par exemple, considérons un système de commerce électronique simple avec deux tables, l'une est la table des clients et l'autre est la table des commandes. La table client contient les informations personnelles du client et la table de commande contient les détails de la commande, tels que le numéro de commande, la date de la commande, le numéro de client, etc. Pour interroger les informations de commande d'un client, vous devez joindre ces deux tables.

  1. Qu'est-ce que la clause JOIN ?

JOIN est une clause SQL utilisée pour joindre les données de plusieurs tables ensemble. Il peut faire correspondre les données de deux tables ou plus pour implémenter des requêtes conjointes.

La clause JOIN compare les colonnes de deux tables ou plus pour déterminer la relation entre les données. Il existe plusieurs types de clauses JOIN, dont les plus courantes sont INNER JOIN, LEFT JOIN et RIGHT JOIN.

  1. INNER JOIN

INNER JOIN est la forme la plus basique de clause JOIN. Il renvoie uniquement les enregistrements des deux tables qui correspondent. La syntaxe de base de la clause INNER JOIN est la suivante :

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

où nom_colonne précise le nom de la colonne à récupérer, table1 et table2 sont les noms des tables à joindre, nom_colonne est le nom de la colonne dans les deux tables, utilisés les uns pour les autres Comparez.

Voici un exemple d'interrogation de deux tables à l'aide de INNER JOIN :

SELECT customers.customer_name, orders.order_date
FROM customers
INNER JOIN orders
ON customers.customer_id = orders.customer_id;

Cette requête renverra le nom du client et la date de commande, mais ne renverra des données que si le même identifiant client existe dans les tables clients et commandes.

  1. LEFT JOIN

LEFT JOIN ajoute tous les enregistrements dans le tableau de gauche en fonction de INNER JOIN. S'il n'y a aucune correspondance correspondante dans le tableau de droite, NULL est renvoyé. La syntaxe de base de la clause LEFT JOIN est la suivante :

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

Voici un exemple d'interrogation de deux tables à l'aide de LEFT JOIN :

SELECT customers.customer_name, orders.order_date
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;

Cette requête renverra les noms de tous les clients et leurs dates de commande, y compris les clients qui n'ont pas de commande. . S'il n'y a aucun enregistrement de commande pour un client, la colonne Date de commande affichera NULL.

  1. RIGHT JOIN

RIGHT JOIN est similaire à LEFT JOIN, mais renvoie tous les enregistrements de la table de droite au lieu de tous les enregistrements de la table de gauche. S'il n'y a aucune correspondance correspondante dans le tableau de gauche, NULL est renvoyé. La syntaxe de base de la clause RIGHT JOIN est la suivante :

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

Voici un exemple d'interrogation de deux tables à l'aide de RIGHT JOIN :

SELECT customers.customer_name, orders.order_date
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;

Cette requête renverra toutes les commandes et les noms des clients auxquels elles appartiennent, y compris les commandes qui ont aucun dossier client. S'il n'y a aucun enregistrement client pour une commande, la colonne Nom du client affichera NULL.

  1. Résumé

Dans MySQL, la clause JOIN peut nous aider à interroger les données requises dans plusieurs tables. Les requêtes corrélées nous permettent d'avoir une vue plus complète des données et de mieux comprendre les données de la base de données. Il existe plusieurs types de clauses JOIN, notamment INNER JOIN, LEFT JOIN et RIGHT JOIN. Choisir le type JOIN approprié est très important car il nous permet d'interroger les données plus efficacement et d'améliorer les performances de la base de données.

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