ホームページ > データベース > mysql チュートリアル > SQL クエリを使用して複数のテーブルからデータを取得するにはどうすればよいですか?

SQL クエリを使用して複数のテーブルからデータを取得するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-24 01:42:41
オリジナル
601 人が閲覧しました

How Can I Retrieve Data from Multiple Tables Using SQL Queries?

SQL マルチテーブル データ クエリ ガイド

はじめに

このガイドでは、データベース内の複数のテーブルからデータを取得し、複雑なデータ分析とレポート生成をサポートする SQL のさまざまな方法を紹介します。

つながり、団結してください

Join は、共通の列に基づいて複数のテーブルの行を結合し、単一の結果セットを作成するために使用されます。主な接続タイプは 3 つあります:

  • 内部結合: 両方のテーブルで一致する行のみを返します。
  • 左外部結合: 左側のテーブルからすべての行を返し、右側のテーブルから一致する行のみを返します。
  • 右外部結合: 右側のテーブルからすべての行を返し、左側のテーブルから一致する行のみを返します。

Unions 複数のクエリの結果を 1 つの結果セットに結合します。これらは結合に似ていますが、照合に共通の列を使用しません。結合を使用すると、異なる構造を持つテーブルのデータをマージしたり、重複する行を削除したりできます。

サブクエリ

サブクエリ は、メイン クエリから取得したデータをフィルタリングまたは変更するために使用されるクエリ内のクエリです。これらはかっこで囲まれており、WHERE、HAVING、または FROM 句で使用できます。

デカルト積の関係 (悪夢の始まり!)

デカルト積結合は、テーブルを結合するときに結合条件が指定されていない場合に発生します。その結果、不要な行が大量に発生し、パフォーマンスが低下する可能性があります。デカルト積結合を避けるために、必ず結合条件を指定してください。

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート