このガイドでは、データベース内の複数のテーブルからデータを取得し、複雑なデータ分析とレポート生成をサポートする SQL のさまざまな方法を紹介します。
Join は、共通の列に基づいて複数のテーブルの行を結合し、単一の結果セットを作成するために使用されます。主な接続タイプは 3 つあります:
Unions 複数のクエリの結果を 1 つの結果セットに結合します。これらは結合に似ていますが、照合に共通の列を使用しません。結合を使用すると、異なる構造を持つテーブルのデータをマージしたり、重複する行を削除したりできます。
サブクエリ は、メイン クエリから取得したデータをフィルタリングまたは変更するために使用されるクエリ内のクエリです。これらはかっこで囲まれており、WHERE、HAVING、または FROM 句で使用できます。
デカルト積結合は、テーブルを結合するときに結合条件が指定されていない場合に発生します。その結果、不要な行が大量に発生し、パフォーマンスが低下する可能性があります。デカルト積結合を避けるために、必ず結合条件を指定してください。
FROM 句 内のサブクエリを使用すると、サブクエリの結果セットをメイン クエリのテーブルとして使用できます。これは、複雑なデータ変換やネストされたクエリの簡素化に役立ちます。
計算列: 算術演算または関数を使用して、クエリ内に新しい列を作成します。 CASE ステートメント: 論理式を使用して、指定された条件に基づいて異なる値を選択します。 OVER() 関数: パーティション内の行のグループに集計関数を適用します。 一時テーブル: 中間結果を保存する一時テーブルを作成します。これにより、元のテーブルを変更せずに複雑なデータ変換が可能になります。 派生テーブル: 一時テーブルに似ていますが、クエリ内でインラインで作成されます。
例 1: トヨタと BMW が製造した車の名前とモデルを取得します。
<code class="language-sql">SELECT cars.model, brands.brand FROM cars JOIN brands ON cars.brand = brands.id WHERE brands.brand IN ('Toyota', 'BMW');</code>
例 2: スポーツカーまたは四輪駆動車の名前と色を取得します。
<code class="language-sql">SELECT cars.model, colors.color FROM cars JOIN models ON cars.model = models.id JOIN colors ON cars.color = colors.id WHERE models.model IN ('Sports', '4WD');</code>
例 3: 在庫に車がない場合でも、左外部結合を使用してすべてのメーカーを取得します。
<code class="language-sql">SELECT brands.brand FROM brands LEFT JOIN cars ON brands.id = cars.brand;</code>
結合、ユニオン、その他の高度な SQL テクニックをマスターすることで、複数のテーブルからデータを効率的に取得し、複雑なレポートを生成できます。これは、データ アナリスト、データ サイエンティスト、データベース管理者にとって重要なスキルです。
以上がSQL クエリを使用して複数のテーブルからデータを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。