ホームページ > バックエンド開発 > PHPの問題 > PHP 2 つのテーブルをマージするクエリ

PHP 2 つのテーブルをマージするクエリ

王林
リリース: 2023-05-07 09:25:07
オリジナル
653 人が閲覧しました

PHP 開発では、複数のデータ テーブルで結合クエリを実行する必要がある状況によく遭遇します。この時点で、SQL ステートメントの Union キーワードを使用して 2 つのテーブルをマージできます。この記事では、PHP で Union キーワードを使用して 2 つのテーブルを結合する方法を紹介します。

  1. 基本構文

次の構文を使用して 2 つのテーブルをマージできます:

SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;
ログイン後にコピー

そのうち、column1、column2、... は、クエリを実行する必要がある列の名前。table1 と table2 はクエリを実行する必要があるデータ テーブルの名前です。 Union キーワードは、2 つの SELECT ステートメントの結果をクエリ結果セットに結合するために使用されます。マージ クエリを実行するときは、2 つの SELECT ステートメントで選択された列の数と種類が一致していることを確認する必要があります。一致していないとエラーが発生します。

  1. UNION ALL キーワードを使用する

データ テーブルのマージ クエリに UNION キーワードを使用するだけでなく、マージ クエリに UNION ALL キーワードを使用することもできます。 UNION キーワードとは異なり、UNION ALL キーワードは、重複レコードを含む 2 つのクエリ結果セット内のすべてのレコードをマージします。実際の状況では重複したレコードを保持する必要がある可能性があるため、これには特別な注意が必要です。

以下は、UNION ALL キーワードを使用してデータ テーブルを結合するための基本的な構文です。

SELECT column1, column2, ... FROM table1
UNION ALL
SELECT column1, column2, ... FROM table2;
ログイン後にコピー
  1. サンプル コード

方法をよりよく理解するため、 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 テーブルに出力します。

  1. 概要

union キーワードを使用すると、複数のデータ テーブルに対して結合クエリを簡単に実行して、目的のデータ結果を取得できます。マージ クエリを実行するときは、2 つの SELECT ステートメントで選択された列の数と種類が一致している必要があることに注意する必要があります。一致していないとエラーが発生します。さらに、UNION ALL キーワードを使用してデータ テーブルを結合し、すべての重複レコードを保持することもできます。実際の開発では、データテーブルのマージクエリを実行するニーズに応じて最適なタイプを選択する必要があります。

以上がPHP 2 つのテーブルをマージするクエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート