Maison >développement back-end >tutoriel php >Compétences en matière de requêtes liées à plusieurs tables en PHP

Compétences en matière de requêtes liées à plusieurs tables en PHP

王林
王林original
2023-05-24 10:01:512071parcourir

Compétences en matière de requêtes liées à plusieurs tables en PHP

La requête associée est une partie importante de la requête de base de données, en particulier lorsque vous devez afficher des données dans plusieurs tables de base de données associées. Dans les applications PHP, les requêtes liées à plusieurs tables sont souvent utilisées lors de l'utilisation de bases de données telles que MySQL. La signification de l'association multi-tables est de comparer les données d'une table avec les données d'une autre ou de plusieurs tables, et de connecter les lignes qui répondent aux exigences du résultat.

Lorsque vous effectuez des requêtes de corrélation multi-tables, vous devez prendre en compte la relation entre les tables et utiliser des méthodes de corrélation appropriées. Ce qui suit présente plusieurs techniques pour les requêtes liées à plusieurs tables et comment les utiliser en PHP.

  1. Jointure interne

La jointure interne est la méthode d'association multi-tables la plus couramment utilisée, qui fait correspondre les enregistrements dans deux tables ou plus et renvoie uniquement les lignes correspondantes. Dans MySQL, la syntaxe de la jointure interne est la suivante :

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

Par exemple, si vous devez afficher une liste de clients commandes et besoin de visualiser le client Pour des informations détaillées, vous pouvez utiliser l'instruction de requête SQL suivante :

SELECT clients.CustomerID, clients.CustomerName, commandes.OrderDate
FROM clients
INNER JOIN commandes
ON clients.CustomerID = commandes.CustomerID ;

En PHP, ces instructions Query peuvent être exécutées à l'aide de la méthode query() de la fonction mysqli.

  1. Jointure gauche

La jointure gauche est une méthode d'association multi-table couramment utilisée, qui renvoie toutes les lignes de la table de gauche et les lignes de la table de droite liées à la table de gauche. S'il n'y a aucune ligne correspondante dans le tableau de gauche, la colonne du tableau de droite sera NULL. Dans MySQL, la syntaxe d'une jointure gauche est la suivante :

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

Par exemple, si vous devez afficher celles sans commandes dans la liste des clients, vous devez utiliser la requête SQL suivante :

SELECT clients.CustomerName, commandes.OrderID
FROM clients
LEFT JOIN commandes
ON clients.CustomerID = commandes.CustomerID
ORDER BY clients.CustomerName;

En PHP, ces instructions Query peuvent être exécutées à l'aide de la méthode query() de la fonction mysqli.

  1. Jointure droite

La jointure droite est l'opération inverse de la jointure gauche, elle renvoie toutes les lignes de la table de droite et les lignes de la table de gauche liées à la table de droite. S'il n'y a aucune ligne correspondante dans le tableau de droite, la colonne du tableau de gauche sera NULL. Dans MySQL, la syntaxe d'une jointure à droite est la suivante :

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

Par exemple, si vous devez afficher une liste de commandes et le nom du client de la commande. Et vous devez inclure ces commandes sans clients, vous pouvez utiliser l'instruction de requête SQL suivante :

SELECT commandes.OrderID, clients.CustomerName
FROM commandes
RIGHT JOIN clients
ON commandes.CustomerID = customer.CustomerID
ORDER BY commandes.OrderID;

En PHP, cette instruction de requête peut être exécutée à l'aide de la méthode query() de la fonction mysqli.

  1. Jointure complète

La jointure complète correspond à toutes les lignes du tableau de gauche et du tableau de droite et renvoie tous les résultats. S'il n'y a aucune ligne correspondante dans les deux tableaux, remplissez avec NULL. Dans MySQL, la syntaxe d'une jointure complète est la suivante :

SELECT nom_colonne(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;

MySQL ne fournit pas FULL OUTER JOIN, mais vous peut joindre à gauche Combiner avec une jointure à droite pour simuler l'opération FULL OUTER JOIN.

En PHP, une connexion complète peut être implémentée à l'aide de la méthode query() de la fonction mysqli.

  1. Self-join

Self-join joint deux champs différents dans la même table et crée une table d'alias à lier. La clé est de déterminer les différentes méthodes de sortie lors de l'utilisation de la sortie. Dans MySQL, la syntaxe d'une auto-jointure est la suivante :

SELECT table1.column1, table2.column2...
FROM table1, table2
WHERE table1.column = table2.column;

Par exemple, vous souhaitez trouver plus que tous les autres Les employés avec des salaires élevés peuvent utiliser la requête SQL suivante :

SELECT a.employeeName
FROM employé a, employé b
WHERE a.employeeSalary > b.employeeSalary
AND b.employeeName = 'Jane';

en PHP, cette instruction de requête peut être exécutée à l'aide de la méthode query() de la fonction mysqli.

Résumé

Les requêtes liées aux multi-tables sont très courantes dans les applications PHP et MySQL. Cet article propose cinq techniques liées aux multi-tables, notamment les jointures internes, les jointures de gauche, les jointures de droite, les jointures complètes et les auto-jointures. Utilisez ces techniques pour mieux interroger et afficher les données dans plusieurs tables de base de données associé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