PHP における複数テーブル関連のクエリ スキル
関連クエリは、特に複数の関連データベース テーブルのデータを表示する必要がある場合に、データベース クエリの重要な部分です。 PHP アプリケーションでは、MySQL などのデータベースを使用するときに複数テーブル関連のクエリがよく使用されます。複数テーブルの関連付けの意味は、1 つのテーブルのデータを別のテーブルまたは複数のテーブルのデータと比較し、結果の要件を満たす行を接続することです。
複数テーブルの相関クエリを実行する場合は、テーブル間の関係を考慮し、適切な相関方法を使用する必要があります。以下では、複数テーブル関連のクエリに関するいくつかのテクニックと、それらを PHP で使用する方法を紹介します。
内部結合は、最も一般的に使用される複数テーブルの関連付け方法です。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() メソッドを使用して実行できます。
左結合は、一般的に使用される複数テーブルの関連付け方法です。左側のテーブルのすべての行と、左側のテーブルに関連する行を右側に返します。テーブル。左側のテーブルに一致する行がない場合、右側のテーブルの列は 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関数。
右結合は左結合の逆の操作で、右のテーブルのすべての行と、右のテーブルに関連する左のテーブルの行を返します。右側のテーブルに一致する行がない場合、左側のテーブルの列は 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() メソッドを使用して実行できます。
完全結合は、左側のテーブルと右側のテーブルのすべての行と一致し、すべての結果を返します。 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() メソッドを使用して完全な接続を実現できます。
自己結合は、同じテーブル内の 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 サイトの他の関連記事を参照してください。