Maison >développement back-end >Problème PHP >Requête de fusion de deux tables PHP

Requête de fusion de deux tables PHP

王林
王林original
2023-05-07 09:25:07659parcourir

Dans le développement PHP, nous rencontrons souvent des situations où nous devons effectuer des requêtes conjointes dans plusieurs tables de données. À ce stade, nous pouvons fusionner les deux tables en utilisant le mot-clé union dans l'instruction SQL. Cet article explique comment utiliser le mot-clé union en PHP pour fusionner deux tables.

  1. Syntaxe de base

Nous pouvons utiliser la syntaxe suivante pour fusionner les deux tables :

SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;

Parmi eux, colonne1, colonne2, ... sont les noms de colonnes qui doivent être interrogés, et table1 et table2 sont les données qui doivent être interrogés respectivement. Le mot-clé Union est utilisé pour combiner les résultats de deux instructions SELECT dans un jeu de résultats de requête. Lors de l'exécution d'une requête de fusion, vous devez vous assurer que le nombre et le type de colonnes sélectionnées dans les deux instructions SELECT doivent être cohérents, sinon une erreur se produira.

  1. Utilisez le mot-clé UNION ALL

En plus d'utiliser le mot-clé UNION pour les requêtes de fusion de tables de données, nous pouvons également utiliser le mot-clé UNION ALL pour les requêtes de fusion. Contrairement au mot clé UNION, le mot clé UNION ALL fusionnera tous les enregistrements des deux ensembles de résultats de requête, y compris les enregistrements en double. Cela nécessite une attention particulière car dans des situations réelles, nous pouvons avoir besoin de conserver des enregistrements en double.

Ce qui suit est la syntaxe de base pour les requêtes de fusion de tables de données utilisant le mot-clé UNION ALL :

SELECT column1, column2, ... FROM table1
UNION ALL
SELECT column1, column2, ... FROM table2;
  1. Exemple de code

Afin de mieux comprendre comment utiliser le mot-clé union pour les requêtes de fusion de tables de données en PHP, nous pouvons essayer utiliser du code pour la démonstration. Supposons que nous ayons deux tables de données utilisateur et employé. Leurs structures de données sont les suivantes :

user表:
id    name     age    city
1     Tom      22     北京
2     Jerry    23     上海
3     Peter    24     广州

employee表:
id    name     age    salary
1     Mary     25     2000
2     Lucy     26     2500
3     Jack     27     3000

Nous devons maintenant interroger tous les enregistrements de la table utilisateur et de la table employé. Nous pouvons utiliser le code suivant pour réaliser cette opération :

<?php
  try {
    $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'password');
    $sql = "SELECT id, name, age, city FROM user
            UNION ALL
            SELECT id, name, age, salary as city FROM employee";
    $stmt = $pdo->query($sql);
    echo "<table>";
    echo "<tr><td>ID</td><td>Name</td><td>Age</td><td>City</td></tr>";
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
      echo "<tr>";
      echo "<td>".$row['id']."</td>";
      echo "<td>".$row['name']."</td>";
      echo "<td>".$row['age']."</td>";
      echo "<td>".$row['city']."</td>";
      echo "</tr>";
    }
    echo "</table>";
  } catch (PDOException $e) {
    echo $e->getMessage();
  }
?>

Dans le code, nous créons d'abord un objet de connexion PDO, puis utilisons le mot-clé UNION ALL dans l'instruction SQL pour fusionner la table utilisateur et la table employé pour la requête. Enfin, nous obtenons les résultats de la requête ligne par ligne via la fonction fetch et affichons les résultats dans un tableau HTML.

  1. Résumé

En utilisant le mot-clé union, nous pouvons facilement effectuer des requêtes conjointes sur plusieurs tables de données pour obtenir les résultats de données souhaités. Lors de l'exécution de requêtes de fusion, vous devez noter que le nombre et le type de colonnes sélectionnées dans les deux instructions SELECT doivent être cohérents, sinon une erreur se produira. De plus, nous pouvons également utiliser le mot-clé UNION ALL pour fusionner les tables de données afin de conserver tous les enregistrements en double. Dans le développement réel, nous devons choisir le type le plus approprié en fonction des besoins pour effectuer une requête de fusion de tables 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
Article précédent:supprimer modifier phpArticle suivant:supprimer modifier php