ホームページ  >  記事  >  バックエンド開発  >  PHP ユニオン クエリ 3 つのテーブル

PHP ユニオン クエリ 3 つのテーブル

王林
王林オリジナル
2023-05-07 09:15:06816ブラウズ

Web サイトを開発する場合、複数のテーブルを組み合わせてクエリを実行し、必要なデータを取得する必要がある場合があります。 PHP では、ユニオン クエリ ステートメントを使用してこの機能を実現できます。この記事では、PHP を使用して 3 つのテーブルを共同でクエリする方法を紹介します。

users、orders、order_items という 3 つのテーブルがあるとします。このうち、users テーブルはユーザー情報を記録し、orders テーブルは注文情報を記録し、order_items テーブルは注文品目情報を記録します。次に、各ユーザーのすべての注文と、各注文のすべての品目をクエリする必要があります。これは、次の結合クエリ ステートメントを使用して実現できます。

$sql = "SELECT u.name, o.order_number, i.product_name, i.price
    FROM users u
    JOIN orders o ON u.id = o.user_id
    JOIN order_items i ON o.id = i.order_id
    WHERE u.id = ?";

このステートメントは、まず JOIN キーワードを使用して users テーブル、orders テーブル、および order_items テーブルを接続し、次に WHERE 句を使用して指定されたユーザーの情報をフィルターで除外します。 。このうち、JOIN キーワードはテーブルを結合するために使用され、ON キーワードは接続条件を指定するために使用されます。

上記のクエリでは、各ユーザーのすべての注文と各注文のすべての品目をクエリする必要があります。したがって、JOIN キーワードを使用して、users テーブル、orders テーブル、order_items テーブルを接続する必要があります。接続方法は 3 つあります。

  • INNER JOIN (内部結合): 2 つのテーブルから一致する行のみが返されます。
  • LEFT JOIN (左結合): 結合条件を満たす左テーブルのすべての行と右テーブルの行を返します。右側のテーブルに一致する行がない場合は、NULL が返されます。
  • RIGHT JOIN (右結合): 結合条件を満たす右テーブルのすべての行と左テーブルの行を返します。左側のテーブルに一致する行がない場合は、NULL が返されます。

この例では、一致する行のみを返したいため、INNER JOIN を使用しました。

次に、接続条件を指定する必要があります。ここでは、ユーザー ID (users.id) を注文ユーザー ID (orders.user_id) に関連付け、注文 ID (orders.id) を使用して注文商品注文 ID (order_items.order_id) を関連付けます。

最後に、WHERE 句を使用して、指定したユーザーの情報をフィルタリングします。ここではプレースホルダー?を使用しており、クエリを実行する前に、bindParam() または bindingValue() メソッドを使用して実際のパラメーターをプレースホルダーにバインドする必要があります。

要約すると、これは 3 つのテーブルを共同でクエリする比較的単純な PHP ステートメントです。ユニオン クエリは非常に柔軟で強力なクエリ手法であり、実際の開発では実際のニーズに応じて柔軟に使用する必要があります。

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

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