PHP は、Web アプリケーションの開発に使用される非常に人気のあるプログラミング言語です。 Web 開発において、データベースは非常に重要なコンポーネントです。一般的なアプリケーション シナリオは、複数のテーブルから情報を抽出し、それらを組み合わせてユーザーに表示することです。 PHP では、この目標を達成するために複数の方法を使用できます。この記事では、PHP を使用して 2 つのテーブル クエリをマージする方法について説明します。
1. JOIN ステートメントを使用してテーブルをマージする
JOIN ステートメントは、SQL で複数のテーブルをマージするために使用されるメソッドです。 PHP では、JOIN ステートメントを使用して複数のテーブルから情報を抽出できます。 JOIN ステートメントにはいくつかの種類があり、最も一般的なものは INNER JOIN と LEFT JOIN です。
INNER JOIN は 2 つのテーブルの共有所有レコードを返し、LEFT JOIN は左側のテーブルのすべてのレコードと、関連付けられた右側のテーブルのすべてのレコードを返します。 JOIN ステートメントを使用する場合、各テーブルの名前とテーブル間の関連付け条件を指定する必要があります。
次は、INNER JOIN を使用して 2 つのテーブルをマージする例です:
$sql = "SELECT * FROM table1 INNER JOIN table2 ON table1.id = table2.id"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 输出每一行数据 while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>"; } } else { echo "0 结果"; }
この例では、INNER JOIN を使用して、table1 と table2 という名前の 2 つのテーブルをマージします。関連条件 table1.id=table2.id を指定しました。この条件は、この条件を満たす行のみを返すように MySQL に指示します。
2. JOIN ステートメントとコンマ演算子を使用してテーブルを結合する
複数のテーブルから情報を抽出する場合は、コンマ演算子と JOIN ステートメントを使用する別の方法もあります。この方法は INNER JOIN や LEFT JOIN ほど明確ではありませんが、状況によってはより便利な場合があります。
ここでは、コンマ演算子と JOIN ステートメントを使用して 2 つのテーブルから情報を抽出する例を示します:
$sql = "SELECT table1.*, table2.email FROM table1,table2 WHERE table1.id = table2.id"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 输出每一行数据 while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>"; } } else { echo "0 结果"; }
この例では、コンマ演算子を使用して 2 つのテーブルから同時に情報を抽出します。すべての列。また、WHERE 句を指定して、この条件を満たす行のみが返されることを示します。
3. UNION ステートメントを使用してクエリ結果をマージする
JOIN ステートメントに加えて、UNION ステートメントを使用してクエリ結果をマージすることもできます。 UNION ステートメントは、複数の SELECT ステートメントの結果を 1 つの結果セットに結合できます。 UNION ステートメントでは、SELECT ステートメントの数と列の型が同じである必要があります。
以下は、UNION ステートメントを使用して 2 つのテーブルをマージするクエリ結果の例です。
$sql = "(SELECT id, name, email FROM table1) UNION (SELECT id, name, email FROM table2)"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { // 输出每一行数据 while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["name"]. " " . $row["email"]. "<br>"; } } else { echo "0 结果"; }
この例では、UNION ステートメントを使用して、 table1 と table2 という名前の 2 つのテーブルをマージします。それぞれ 2 つのテーブルから取得した id、name、および email 列を選択しました。 UNION ステートメントを使用すると、それらを 1 つの結果セットに結合し、PHP コードで処理できます。
結論
複数のテーブルから情報を抽出することは、Web アプリケーションを開発するときに非常に一般的な操作です。 PHP では、JOIN ステートメント、カンマ演算子、UNION ステートメントを使用してこの目標を達成できます。適切なアプローチを選択すると、アプリケーションのパフォーマンスと保守性が大幅に向上します。
以上がPHP を使用して 2 つのテーブル クエリをマージする方法を説明する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。