ホームページ バックエンド開発 PHPの問題 PHP は 2 つのテーブルの内容を同時にクエリします

PHP は 2 つのテーブルの内容を同時にクエリします

May 07, 2023 pm 12:37 PM

Web サイトやアプリケーションを開発するとき、さまざまなデータベース テーブルからデータを取得する必要があることがよくあります。 PHP では、SQL ステートメントを使用して 1 つのテーブルからデータを取得できますが、複数のテーブルから同時にデータを取得する必要がある場合は、複雑なクエリ ステートメントを作成する必要があります。この記事では、PHP を使用して 2 つのテーブルの内容を同時にクエリする方法を学びます。

1. 2 つのテーブルを結合する

SQL クエリ ステートメントを使用して 2 つのテーブルからデータを取得する場合、接続 (JOIN) 関数を使用する必要があります。結合は 2 つのテーブルのデータを照合し、両方のテーブルの一致するデータをすべて含む結果セットを生成します。 PHP では、mysqli 関数を使用して接続クエリを実行できます。

以下は 2 つのテーブルからデータを取得するサンプル コードです:

$mysqli = new mysqli("localhost", "username", "password", "mydatabase");

$query = "SELECT * FROM table1 JOIN table2 ON table1.id = table2.id";

$result = $mysqli->query($query);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "Name: " . $row["name"]. " - Email: " . $row["email"]. " - Phone: " . $row["phone"]. "<br>";
    }
} else {
    echo "0 results";
}

$mysqli->close();
ログイン後にコピー

上記のコードでは、table1 と table2 という名前の 2 つのテーブルをクエリします。 ON ステートメントを指定することで、2 つのテーブルを結合します。 SELECT * を使用すると、両方のテーブルからすべてのフィールドを取得できます。

2. 左結合を使用する

2 つのテーブルからデータを取得する必要があり、一方のテーブルのデータがもう一方のテーブルと一致しない可能性がある場合は、左結合を使用する必要があります。左結合では、一致する行と一致しない行を含む結果セットを取得できます。 PHP では、LEFT JOIN キーワードを使用して左結合を実行できます。

以下は、左結合を使用してデータを取得するサンプル コードです。

$mysqli = new mysqli("localhost", "username", "password", "mydatabase");

$query = "SELECT table1.name, table2.email FROM table1 LEFT JOIN table2 ON table1.id = table2.id";

$result = $mysqli->query($query);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$mysqli->close();
ログイン後にコピー

上記のコードでは、左結合を使用して 2 つのテーブルからデータを取得しました。各テーブルから選択するフィールドと、LEFT JOIN ステートメントで使用される ON 条件を指定します。結果セットには、table1 のすべての行と、table2 の行と一致する行が含まれます。 table2 に一致する行がない場合は、結果セットの値が NULL に置き換えられます。

3. エイリアスの使用

複数のテーブルからデータを取得する場合、複数のテーブルで同じ名前のフィールドに関する問題が発生する可能性があります。この問題を解決するには、エイリアスを使用します。エイリアスは、テーブルまたはフィールドを識別するために使用される別の名前です。 PHP では、AS キーワードを使用してテーブルまたはフィールドの別名を指定できます。

以下はエイリアスを使用したサンプル コードです:

$mysqli = new mysqli("localhost", "username", "password", "mydatabase");

$query = "SELECT table1.name AS customer_name, table2.email AS customer_email FROM table1 JOIN table2 ON table1.id = table2.id";

$result = $mysqli->query($query);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "Name: " . $row["customer_name"]. " - Email: " . $row["customer_email"]. "<br>";
    }
} else {
    echo "0 results";
}

$mysqli->close();
ログイン後にコピー

上記のコードでは、AS キーワードを使用して各テーブルのフィールドのエイリアスを指定しました。エイリアスを使用すると、2 つのテーブル内の同じ名前のフィールドによって引き起こされる競合を回避できます。

結論

この記事では、PHP を使用して 2 つのテーブルの内容を同時にクエリする方法について説明しました。結合機能と左結合機能、およびエイリアス構文を使用しました。これらの手法を使用すると、複数のテーブルからデータを簡単に取得し、それらを 1 つの結果セットにマージできます。 Web サイトを開発している場合でも、アプリケーションを開発している場合でも、これらのテクノロジーはデータの取得と整理に非常に役立ちます。

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)