ホームページ >データベース >mysql チュートリアル >mysqlクエリ関連テーブル
ほとんどの場合、データベースには複数のテーブルがあります。データベース システムでは、多くの場合、複数のテーブルのデータをクエリする必要があります。これは SQL 結合クエリと呼ばれます。 MySQL では、関連するクエリを実装するには JOIN 句が必要です。この記事では、JOIN 句を使用して MySQL の関連テーブルからデータをクエリする方法について説明します。
一般に、データベース内のテーブルには多数のデータが含まれます。結合クエリの主な目的は、複数のテーブルからデータを抽出し、これらのテーブルのデータを結合して、必要な情報を含む完全なビューを生成することです。
たとえば、2 つのテーブル (1 つは顧客テーブル、もう 1 つは注文テーブル) を持つ単純な電子商取引システムを考えてみましょう。顧客テーブルには顧客の個人情報が含まれ、注文テーブルには注文番号、注文日、顧客番号などの注文の詳細が含まれます。顧客の注文情報をクエリするには、これら 2 つのテーブルを結合する必要があります。
JOIN は、複数のテーブルのデータを結合するために使用される SQL 句です。 2 つ以上のテーブルのデータを相互に照合して、結合クエリを実装できます。
JOIN 句は、2 つ以上のテーブルの列の比較に基づいてデータ間の関係を決定します。 JOIN 句にはいくつかの種類があり、最も一般的なのは INNER JOIN、LEFT JOIN、および RIGHT JOIN です。
INNER JOIN は、JOIN 句の最も基本的な形式です。両方のテーブルから互いに一致するレコードのみを返します。 INNER JOIN 句の基本的な構文は次のとおりです。
SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
このうち、column_name は取得する列の名前を指定し、table1 と table2 は結合するテーブルの名前を指定し、column_name は結合するテーブルの名前を指定します。 2 つのテーブルの列名を比較します。
以下は、INNER JOIN を使用して 2 つのテーブルをクエリする例です:
SELECT customers.customer_name, orders.order_date FROM customers INNER JOIN orders ON customers.customer_id = orders.customer_id;
このクエリは顧客の名前と注文日を返しますが、顧客と注文の両方に同じ顧客が存在する場合に限ります。 tables ID が指定された場合のみデータが返されます。
LEFT JOIN は、INNER JOIN に基づいて左側のテーブル内のすべてのレコードを追加します。右側のテーブルに対応する一致がない場合は、NULL が返されます。 LEFT JOIN 句の基本構文は次のとおりです。
SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
LEFT JOIN を使用して 2 つのテーブルをクエリする例を次に示します。
SELECT customers.customer_name, orders.order_date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id;
このクエリは、すべての顧客の名前とその注文を返します。注文のない顧客を含む日付。顧客の注文レコードがない場合、「注文日」列には NULL が表示されます。
RIGHT JOIN は LEFT JOIN に似ていますが、左側のテーブルのすべてのレコードではなく、右側のテーブルのすべてのレコードを返します。左側のテーブルに一致するものが存在しない場合は、NULL が返されます。 RIGHT JOIN 句の基本構文は次のとおりです。
SELECT column_name(s) FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
次に、RIGHT JOIN を使用して 2 つのテーブルをクエリする例を示します。
SELECT customers.customer_name, orders.order_date FROM customers RIGHT JOIN orders ON customers.customer_id = orders.customer_id;
このクエリは、すべての注文と注文の名前を返します。顧客によって記録された注文はありません。注文の顧客レコードがない場合、顧客名列には NULL が表示されます。
MySQL では、JOIN 句を使用して、複数のテーブル内の必要なデータをクエリできます。相関クエリにより、データのより完全なビューを取得し、データベース内のデータをより深く理解できるようになります。 JOIN 句には、INNER JOIN、LEFT JOIN、RIGHT JOIN など、いくつかの種類があります。適切な JOIN タイプを選択することは、データをより効率的にクエリし、データベースのパフォーマンスを向上させることができるため、非常に重要です。
以上がmysqlクエリ関連テーブルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。