Maison  >  Article  >  développement back-end  >  PHP Union requête trois tables

PHP Union requête trois tables

王林
王林original
2023-05-07 09:15:06781parcourir

Lors du développement d'un site Web, il est parfois nécessaire de combiner plusieurs tables pour interroger et obtenir les données requises. En PHP, vous pouvez utiliser des instructions de requête union pour réaliser cette fonction. Cet article explique comment utiliser PHP pour interroger conjointement trois tables.

Supposons que nous ayons trois tables : utilisateurs, commandes et order_items. Parmi eux, la table des utilisateurs enregistre les informations sur les utilisateurs, la table des commandes enregistre les informations sur les commandes et la table order_items enregistre les informations sur les articles de commande. Nous devons maintenant interroger toutes les commandes de chaque utilisateur, ainsi que tous les éléments de campagne de chaque commande. Ceci peut être réalisé en utilisant l'instruction de requête conjointe suivante :

$sql = "SELECT u.name, o.order_number, i.product_name, i.price
    FROM users u
    JOIN orders o ON u.id = o.user_id
    JOIN order_items i ON o.id = i.order_id
    WHERE u.id = ?";

Cette instruction connecte d'abord la table des utilisateurs, la table des commandes et la table order_items via le mot-clé JOIN, puis filtre les informations de l'utilisateur spécifié via la clause WHERE. Parmi eux, le mot-clé JOIN est utilisé pour joindre des tables et le mot-clé ON est utilisé pour spécifier les conditions de connexion.

Dans la requête ci-dessus, nous devons interroger toutes les commandes de chaque utilisateur et tous les éléments de campagne de chaque commande. Par conséquent, nous devons utiliser le mot-clé JOIN pour connecter la table des utilisateurs, la table des commandes et la table order_items. Il existe trois méthodes de connexion :

  • INNER JOIN (inner join) : seules les lignes correspondantes des deux tables sont renvoyées.
  • LEFT JOIN (jointure gauche) : renvoie toutes les lignes de la table de gauche et les lignes de la table de droite qui remplissent les conditions de jointure. S'il n'y a aucune ligne correspondante dans la table de droite, NULL est renvoyé.
  • RIGHT JOIN (jointure à droite) : renvoie toutes les lignes de la table de droite et les lignes de la table de gauche qui remplissent les conditions de jointure. S'il n'y a aucune ligne correspondante dans le tableau de gauche, NULL est renvoyé.

Dans cet exemple, nous avons utilisé INNER JOIN car nous voulons uniquement renvoyer les lignes qui correspondent.

Ensuite, nous devons préciser les conditions de connexion. Ici, nous utilisons l'ID utilisateur (users.id) pour associer à l'ID utilisateur de la commande (orders.user_id) et l'ID de commande (orders.id) pour associer l'ID de commande de l'article de commande (order_items.order_id).

Enfin, nous utilisons la clause WHERE pour filtrer les informations de l'utilisateur spécifié. Ici, nous utilisons l'espace réservé ? Avant d'exécuter la requête, vous devez utiliser la méthode bindParam() ou bindValue() pour lier les paramètres réels à l'espace réservé.

Pour résumer, il s'agit d'une instruction PHP relativement simple pour interroger conjointement trois tables. La requête Union est une méthode de requête très flexible et puissante, qui doit être utilisée de manière flexible en fonction des besoins réels du développement réel.

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