LuckyTemplates ユーザーのための SQL のサブクエリ

このチュートリアルでは、SQL でサブクエリを利用する方法を学び、理解します。サブクエリは、別のクエリ内のクエリです。これを、より大きなクエリ内のネストされたクエリと呼ぶこともできます。これは括弧で囲む必要があり、主にWHERE句で使用されます。

LuckyTemplates ユーザーのための SQL のサブクエリ

複数のテーブルからデータを取得する必要がある場合は、SQL でサブクエリを利用できます。

たとえば、次の 2 つのテーブルがあるとします。 

LuckyTemplates ユーザーのための SQL のサブクエリ

これが私たちが解決しなければならない問題です。2022 年に購入した顧客の顧客名、電子メール ID、住所を取得する必要があります。Customersテーブルには売上や注文日の列が記録されていないため、Customersテーブルのみを使用するだけではこれは不可能です。これを解決する別の方法があります。

LuckyTemplates ユーザーのための SQL のサブクエリ

目次

複数の個別のクエリを通じて手動でデータを取得する

まず、 SalesテーブルのCustomerId を取得しているので、できることは、 SalesテーブルのOrderDate列から 2022 年に購入した人の顧客 ID を取得することです。 

LuckyTemplates ユーザーのための SQL のサブクエリ

2022 年以降に購入した人の顧客 ID ( 1、3、5、7、8、9… ) がわかったと仮定すると、別のクエリを作成して、顧客の情報に基づいてCustomersテーブルからそれらの顧客の情報を取得できます。 ID

LuckyTemplates ユーザーのための SQL のサブクエリ

この方法の問題は、プロセスを手動で行ったことです。まず、顧客の ID を取得し、次のクエリに手動で入力して顧客の情報を取得する必要があります。 

SQL のサブクエリを通じてデータを自動的に取得する

ID を手動で入力する代わりに、 SQLのサブクエリを使用して自動的に入力することができます。IN条件と組み合わせて使用​​すると、顧客の ID や特定の問題を解決するために必要なデータを自動的に取得できます。 

これは、問題を解決するために私たちができることの一例です。このサンプル クエリでは、ネストされたクエリから取得された顧客 ID に基づいて、Customersテーブルから顧客の名前、住所、電子メール ID を選択しています。このネストされたクエリでは、顧客 ID は注文日が 2022 のSalesテーブルから取得されます。

LuckyTemplates ユーザーのための SQL のサブクエリ

この手法を使用すると、2022 年以降に購入した人の顧客 ID を手動で入力する必要がなくなります。顧客 ID は、作成したネストされたクエリから自動的に取得されます。 

SQL Server Management Studio を使用したサブクエリのサンプル シナリオ

同様のシナリオを考えてみましょう。今回は SQL Server Management Studio ( SSMS ) 内で実行してみましょう。この例では、他にSalesOrderHeaderSalesTerritoryという 2 つのテーブルがあります。 

LuckyTemplates ユーザーのための SQL のサブクエリ

私たちの目標は、米国の地域からSalesOrderHeaderに関するすべての情報を取得することです。SalesOrderHeaderには、国・地域列がありません。 

LuckyTemplates ユーザーのための SQL のサブクエリ

ただし、SalesTerritoryテーブルでも使用できるTerritoryID列を使用できます。ここで、CountryRegionCode列である国の地域情報も取得できます。

LuckyTemplates ユーザーのための SQL のサブクエリ

LuckyTemplates ユーザーのための SQL のサブクエリ

繰り返しますが、これを手動で行うには、最初に米国の国地域を含むSalesTerritoryテーブルからTerritoryIDを取得します。 

LuckyTemplates ユーザーのための SQL のサブクエリ

次に、米国の国地域の下にTerritoryIDのリストが表示されます。

LuckyTemplates ユーザーのための SQL のサブクエリ

その後、これらの ID をクエリに手動で入力することで、目的の結果を得ることができます。

LuckyTemplates ユーザーのための SQL のサブクエリ

LuckyTemplates ユーザーのための SQL のサブクエリ

ただし、ID を手動で入力する代わりに、サブクエリを使用することで簡単に入力できます。これを、米国の国地域を含むSalesTerritoryテーブルのTerritoryIDを取得する最初のクエリに置き換えるだけです。 

LuckyTemplates ユーザーのための SQL のサブクエリ

これにより、手動プロセスと同じ結果が得られます。 

LuckyTemplates ユーザーのための SQL のサブクエリ

結論

要約すると、SQL におけるサブクエリの使用法と重要性を学びました。特定のサブクエリを作成するための適切な構文についても説明しました。確かに、複数のクエリを作成して、特定の出力を取得する手動プロセスを作成できます。ただし、代わりにWHERE句とIN条件を指定したサブクエリを使用して、別のテーブルから特定のデータを自動的にフェッチすることができます。

このテクニックを使用して、将来のクエリをより効率的に使用できるようになれば幸いです。

ではごきげんよう、

ハーフィズ

SQL Server のダウンロードとインストール
LuckyTemplates ユーザーのための SQL – 新しい LuckyTemplates コース
複数のデータ ソースからのデータのクエリ

Leave a Comment

Power Automate の文字列関数: Substring と IndexOf

Power Automate の文字列関数: Substring と IndexOf

Microsoft フローで使用できる 2 つの複雑な Power Automate String 関数、substring 関数とindexOf 関数を簡単に学習します。

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates でビジュアル ツールチップを作成する

LuckyTemplates ツールチップを使用すると、より多くの情報を 1 つのレポート ページに圧縮できます。効果的な視覚化の手法を学ぶことができます。

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を行う

Power Automate で HTTP 要求を作成し、データを受信する方法を学んでいます。

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で日付テーブルを作成する方法

LuckyTemplates で簡単に日付テーブルを作成する方法について学びましょう。データの分析と視覚化のための効果的なツールとして活用できます。

2 つの方法による SharePoint 列の検証

2 つの方法による SharePoint 列の検証

SharePoint 列の検証の数式を使用して、ユーザーからの入力を制限および検証する方法を学びます。

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel または CSV ファイルにエクスポート

SharePoint リストを Excel ファイルおよび CSV ファイルにエクスポートする方法を学び、さまざまな状況に最適なエクスポート方法を決定できるようにします。

Power Automate のオンプレミス データ ゲートウェイ

Power Automate のオンプレミス データ ゲートウェイ

ユーザーがコンピューターから離れているときに、オンプレミス データ ゲートウェイを使用して Power Automate がデスクトップ アプリケーションにアクセスできるようにする方法を説明します。

DAX 数式での LASTNONBLANK の使用

DAX 数式での LASTNONBLANK の使用

DAX 数式で LASTNONBLANK 関数を使用して、データ分析の深い洞察を得る方法を学びます。

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

CROSSJOIN 関数の使用方法 – LuckyTemplates および DAX チュートリアル

LuckyTemplates で予算分析とレポートを実行しながら、CROSSJOIN 関数を使用して 2 つのデータ テーブルをバインドする方法を学びます。

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

TREATAS 関数を使用して LuckyTemplates で仮想リレーションシップを作成する

このチュートリアルでは、LuckyTemplates TREATAS を使用して数式内に仮想リレーションシップを作成する方法を説明します。