Maison >développement back-end >Problème PHP >Requête de fusion de deux tables PHP
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.
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.
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;
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.
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!