PHP は、Web 開発でよく使用される一般的なサーバー側プログラミング言語です。データベースと対話するタスクのために、PHP の MySQLi 拡張機能は、データベース データのクエリ、追加、変更、削除を簡単に実行できる強力な機能を提供します。この記事では、PHP を使用して 2 つのテーブルの情報をクエリする方法を紹介します。
MySQL データベースでは、2 つ以上のテーブルからデータを取得する必要がある場合があります。たとえば、単純な注文管理システムでは、注文テーブルと顧客テーブルから情報を取得して、注文と顧客の詳細を表示する必要がある場合があります。この時点で、クエリのために 2 つのテーブルを結合する必要があります。
テーブルが 2 つあり、1 つは顧客情報を格納し、もう 1 つは注文情報を格納するとします。顧客テーブルには、顧客 ID、顧客名、住所、市区町村、郵便番号フィールドが含まれます。注文テーブルには、注文 ID、顧客 ID、注文日、および合計フィールドが含まれます。私たちの目標は、これら 2 つのテーブルから注文と顧客の情報を取得することです。
INNER JOIN キーワードを使用して 2 つのテーブルを結合し、取得時に両方のテーブルを同時に取得できるようにします。データ、テーブルデータ。 INNER JOIN キーワードは、2 つのテーブルの同じ値に一致する行を返します。これは、次のコードで実現できます。
SELECT customers.customer_id, customers.customer_name, orders.order_id, orders.order_date FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id;
このクエリ ステートメントは、customer テーブルと order 内の同じ顧客 ID を持つすべての行を返します。テーブルであり、結果セットには顧客が含まれます。4 つのフィールド: ID、顧客名、注文 ID、注文日。
LEFT JOIN キーワードは、左側のテーブル (つまり、最初のテーブル) のすべての行と行を返します。右側 テーブル (つまり 2 番目のテーブル) 内で一致する行が存在しない場合は、NULL が埋め込まれます。たとえば、注文をしていない顧客も表示したい場合は、次のコードを使用してこれを実現できます。
SELECT customers.customer_id, customers.customer_name, orders.order_id, orders.order_date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
このクエリ ステートメントは、customer テーブル内のすべての行と、次の行を返します。注文テーブル内の同じ顧客 ID。顧客が注文していない場合、クエリ結果には NULL 値が表示されます。
RIGHT JOIN キーワードは LEFT JOIN の逆です。右のテーブルのすべての行と、左側のテーブルの行が一致する行。たとえば、注文を行ったすべての顧客を表示したい場合、次のコードを使用してこれを実現できます。
SELECT customers.customer_id, customers.customer_name, orders.order_id, orders.order_date FROM customers RIGHT JOIN orders ON customers.customer_id = orders.customer_id;
このクエリ ステートメントは、orders テーブル内のすべての行と、同じ内容の行を返します。顧客テーブルの顧客 ID。顧客が注文していない場合、クエリ結果には NULL 値が表示されます。
概要
PHP を通じて 2 つのテーブルの情報をクエリするには、INNER JOIN、LEFT JOIN、および RIGHT JOIN キーワードを使用して 2 つのテーブルを結合できます。 2 つのテーブルを結合することで、複数のテーブルからデータを簡単に取得し、それらを 1 つの結果セットにマージできます。クエリ ステートメントを作成するときは、クエリ結果が正しいことを確認するために、テーブル間の関連付け条件に特別な注意を払う必要があります。
以上がPHP を使用して 2 つのテーブルの情報をクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。