ホームページ > バックエンド開発 > PHPチュートリアル > PHP の複数テーブル関連のクエリ スキル

PHP の複数テーブル関連のクエリ スキル

王林
リリース: 2023-05-24 10:04:01
オリジナル
2070 人が閲覧しました

PHP における複数テーブル関連のクエリ スキル

関連クエリは、特に複数の関連データベース テーブルのデータを表示する必要がある場合に、データベース クエリの重要な部分です。 PHP アプリケーションでは、MySQL などのデータベースを使用するときに複数テーブル関連のクエリがよく使用されます。複数テーブルの関連付けの意味は、1 つのテーブルのデータを別のテーブルまたは複数のテーブルのデータと比較し、結果の要件を満たす行を接続することです。

複数テーブルの相関クエリを実行する場合は、テーブル間の関係を考慮し、適切な相関方法を使用する必要があります。以下では、複数テーブル関連のクエリに関するいくつかのテクニックと、それらを PHP で使用する方法を紹介します。

  1. 内部結合

内部結合は、最も一般的に使用される複数テーブルの関連付け方法です。2 つ以上のテーブルのレコードを照合し、一致するレコードのみを返します。OK。 MySQL では、内部結合の構文は次のとおりです。

SELECT 列名
FROM table1
INNER JOIN table2
ON table1.column_name = table2.column_name;

たとえば、顧客の注文のリストを表示し、顧客の詳細を表示する必要がある場合は、次の SQL クエリを使用できます:

SELECT Customers.CustomerID、Customers.CustomerName、orders.OrderDate
FROM 顧客
INNER JOIN 注文
ON 顧客.顧客ID = 注文.顧客ID;

PHP では、このクエリ ステートメントは mysqli 関数の query() メソッドを使用して実行できます。

  1. 左結合

左結合は、一般的に使用される複数テーブルの関連付け方法です。左側のテーブルのすべての行と、左側のテーブルに関連する行を右側に返します。テーブル。左側のテーブルに一致する行がない場合、右側のテーブルの列は NULL になります。 MySQL では、左結合の構文は次のとおりです。

SELECT 列名
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;

たとえば、顧客リストに注文のない顧客を表示する必要があり、次の SQL クエリを使用する必要がある場合:

SELECT Customers.CustomerName,orders.OrderID
FROM Customers
LEFT JOINorders
ON Customers.CustomerID =orders.CustomerID
ORDER BY Customers.CustomerName;

PHP では、このクエリ ステートメントは、 mysqli関数。

  1. 右結合

右結合は左結合の逆の操作で、右のテーブルのすべての行と、右のテーブルに関連する左のテーブルの行を返します。右側のテーブルに一致する行がない場合、左側のテーブルの列は NULL になります。 MySQL では、右結合の構文は次のとおりです。

SELECT 列名
FROM table1
RIGHT JOIN table2
ON table1.column_name = table2.column_name;

たとえば、注文のリストと注文の顧客名を表示する必要があり、顧客のいない注文も含める必要がある場合は、次の SQL クエリを使用できます:

SELECT orders.OrderID,customers.CustomerName
FROMorders
RIGHT JOIN Customers
ONorders.CustomerID = Customers.CustomerID
ORDER BYorders.OrderID;

PHP では、このクエリ ステートメントは次のようになります。 mysqli 関数の query() メソッドを使用して実行できます。

  1. 完全結合

完全結合は、左側のテーブルと右側のテーブルのすべての行と一致し、すべての結果を返します。 2 つのテーブルに一致する行がない場合は、NULL パディングが使用されます。 MySQL では、完全結合の構文は次のとおりです。

SELECT 列名
FROM table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;

MySQL は FULL OUTER JOIN を提供しませんが、左結合と右結合を組み合わせて FULL OUTER JOIN 操作をシミュレートできます。

PHP では、mysqli 関数の query() メソッドを使用して完全な接続を実現できます。

  1. 自己結合

自己結合は、同じテーブル内の 2 つの異なるフィールドを接続し、リンクする別名テーブルを作成します。重要なのは、使用時に異なる出力を決定することです。出力ウェイ。 MySQL では、自己結合の構文は次のとおりです。

SELECT table1.column1, table2.column2...
FROM table1, table2
WHERE table1.column = table2.column;

たとえば、他の従業員よりも給与が高い従業員を検索する場合は、次の SQL クエリを使用できます:

SELECT a.employeeName
FROM 従業員 a, 従業員 b
WHERE a.employeeSalary > ; b.employeeSalary
AND b.employeeName = 'Jane';

PHP では、このクエリ ステートメントは mysqli 関数の query() メソッドを使用して実行できます。

概要

複数のテーブルの関連付けクエリは、PHP および MySQL アプリケーションで非常に一般的です。この記事では、内部結合、左結合、右結合、完全接続、自己結合を含む 5 つの複数テーブル関連付けテクニックを説明します。 -接続されています。これらの手法を使用すると、複数の関連するデータベース テーブルのデータをより適切にクエリおよび表示できます。

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

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