PHP 開発では、複数のデータ テーブルで結合クエリを実行する必要がある状況によく遭遇します。この時点で、SQL ステートメントの Union キーワードを使用して 2 つのテーブルをマージできます。この記事では、PHP で Union キーワードを使用して 2 つのテーブルを結合する方法を紹介します。
次の構文を使用して 2 つのテーブルをマージできます:
SELECT column1, column2, ... FROM table1 UNION SELECT column1, column2, ... FROM table2;
そのうち、column1、column2、... は、クエリを実行する必要がある列の名前。table1 と table2 はクエリを実行する必要があるデータ テーブルの名前です。 Union キーワードは、2 つの SELECT ステートメントの結果をクエリ結果セットに結合するために使用されます。マージ クエリを実行するときは、2 つの SELECT ステートメントで選択された列の数と種類が一致していることを確認する必要があります。一致していないとエラーが発生します。
データ テーブルのマージ クエリに UNION キーワードを使用するだけでなく、マージ クエリに UNION ALL キーワードを使用することもできます。 UNION キーワードとは異なり、UNION ALL キーワードは、重複レコードを含む 2 つのクエリ結果セット内のすべてのレコードをマージします。実際の状況では重複したレコードを保持する必要がある可能性があるため、これには特別な注意が必要です。
以下は、UNION ALL キーワードを使用してデータ テーブルを結合するための基本的な構文です。
SELECT column1, column2, ... FROM table1 UNION ALL SELECT column1, column2, ... FROM table2;
方法をよりよく理解するため、 Union キーワードは、PHP でデータ テーブルのマージ クエリを実行するために使用されます。コードを使用してデモしてみましょう。 user とemployee という 2 つのデータ テーブルがあるとします。それらのデータ構造は次のとおりです:
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
次に、user テーブルとemployee テーブル内のすべてのレコードをクエリする必要があります。この操作を実現するには、次のコードを使用します。
<?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(); } ?>
コードでは、最初に PDO 接続オブジェクトを作成し、次に SQL ステートメントで UNION ALL キーワードを使用して、ユーザー テーブルと従業員テーブルをマージします。クエリ。最後に、フェッチ関数を使用してクエリ結果を行ごとに取得し、結果を HTML テーブルに出力します。
union キーワードを使用すると、複数のデータ テーブルに対して結合クエリを簡単に実行して、目的のデータ結果を取得できます。マージ クエリを実行するときは、2 つの SELECT ステートメントで選択された列の数と種類が一致している必要があることに注意する必要があります。一致していないとエラーが発生します。さらに、UNION ALL キーワードを使用してデータ テーブルを結合し、すべての重複レコードを保持することもできます。実際の開発では、データテーブルのマージクエリを実行するニーズに応じて最適なタイプを選択する必要があります。
以上がPHP 2 つのテーブルをマージするクエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。