ホームページ >データベース >mysql チュートリアル >LEFT JOIN を使用して MySQL で 2 つのテーブルを効果的に結合するにはどうすればよいですか?
MySQL データベースは 2 つのテーブルを効率的に結合します: LEFT JOIN の詳細な説明
データベース管理において、結合テーブルは複数のソースからのデータを統合するための重要なテクノロジーです。これにより、さまざまなテーブルから関連情報を取得し、データの包括的なビューを作成できます。この記事では、MySQL で 2 つのテーブルを結合するプロセスを説明し、データ統合を最大限に活用できるようにします。
問題の説明
2 つのテーブルがあるとします。
あなたの目標は、services テーブルの内容をリストし、clients テーブルの顧客名を含めることです。 services テーブルの「client」フィールドは、clients テーブルの「id」フィールドを参照します。
解決策
MySQL で 2 つのテーブルを結合するには、LEFT JOIN 構文を使用できます。このタイプの結合を使用すると、左側のテーブル (サービス) からすべての行を取得し、右側のテーブル (クライアント) から一致する行を取得できます。次のクエリはこれを実現します:
<code class="language-sql">SELECT * FROM services LEFT JOIN clients ON services.client = clients.id;</code>
説明
SELECT *
句は、両方のテーブルのすべての列を取得します。 LEFT JOIN
句は、共通クライアント フィールドに基づいてサービス テーブル (左側のテーブル) をクライアント テーブル (右側のテーブル) に結合します。 ON
句は、結合条件 services.client = clients.id
を指定します。これは、サービス テーブルの行が、クライアント ID に一致するクライアント テーブルの行と一致することを意味します。 出力例
クエリの結果は、サービス テーブルとクライアント テーブルのすべての列を含む単一のテーブルになります。例:
id | client | service | name | |
---|---|---|---|---|
1 | 10 | Web design | John Smith | john@example.com |
2 | 12 | Marketing | Mary Jones | mary@example.com |
3 | 15 | SEO | NULL | NULL |
この例では、services テーブルの id 3 の行には、clients テーブルに一致する行がないため、name 列と email 列は NULL になります。
以上がLEFT JOIN を使用して MySQL で 2 つのテーブルを効果的に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。