SQLサブクエリの使用方法
必要条件
このチュートリアルに従って完全に理解するには、次のようにする必要があります.
副問い合わせとは
副問い合わせは、別のSQLクエリにネストされたSQLクエリです.彼らは、Aの条件を作成する際にクエリを支援します
WHERE
行をフィルタリングして操作を行う節.副問い合わせはSELECT
, INSERT
, UPDATE
, and DELETE
文.WHERE句における副問い合わせの例
私たちは、1000ドルより大きいトランザクション量でデータベースにユーザーをフェッチしたいです.例では2つのテーブルがあります.
users
and transactions
ユーザーとトランザクション情報を格納します.からのすべての行を取得するクエリを書くことができます
transactions
金額が1000ドル以上で、次に、それからの行を取得する別のクエリの条件として使用するテーブルusers
テーブルは、最初のクエリの結果に基づいています.クエリは次のようになります.
SELECT *
FROM users
WHERE id IN
(SELECT user_id
FROM transactions
WHERE amount > 1000);
副問い合わせの利点
サブクエリの欠点
サブクエリの実行演習
我々はいくつかの例を使用してArctype , ここで、サブクエリを公開し、それらがどのように構築され、アプリケーションで使用されるかを学びます.
このチュートリアルで動作するデータベースを作成する必要があります.便宜のために私はGitHub Gist データベーススキーマを構築し、ダミーデータを挿入するSQLファイルが含まれます.これを使用するには、次の手順を実行する必要があります.
サブクエリによるデータの選択
すべての行を選択するクエリを書きましょう
BUYER
参照SKU_DATA
表.arctypeで新しいクエリを作成し、以下のコードを実行しますSELECT *
FROM BUYER
WHERE BuyerName IN
(SELECT BUYER
FROM SKU_DATA);
上のコードでは、
BUYER
年代からのコラムSKU_DATA
次に、テーブルは、BUYER
同じテーブルBuyerName
カラムの値.サブクエリによるデータの更新
の値を増やすクエリを書きましょう
Price
列の中ORDER_ITEM
2016年に販売されたすべての商品につき10 %のテーブル.arctypeで新しいクエリを作成し、以下のコードを実行しますUPDATE ORDER_ITEM
SET Price=Price*1.1
WHERE SKU IN
(SELECT SKU
FROM CATALOG_SKU_2016);
上のコードでは、
SKU
年代からのコラムCATALOG_SKU_2016
表を更新します.ORDER_ITEM
表.サブクエリによるデータの削除
からのすべてのレコードを削除するサブクエリを書くつもりです
INVENTORY
テーブルは、130000平方フィート未満の倉庫に格納されます.クエリは次のようになります.DELETE
FROM INVENTORY
WHERE WarehouseID IN
(SELECT WarehouseID
FROM WAREHOUSE
WHERE SquareFeet < 130000);
ネストしたサブクエリの使用
また、別のサブクエリ内のサブクエリを持つことも可能です.以下に例を示します:
SELECT *
FROM CATALOG_SKU_2017
WHERE SKU IN
(
SELECT SKU
FROM INVENTORY
WHERE WarehouseID IN
(
SELECT WarehouseID
FROM WAREHOUSE
WHERE SquareFeet > 130000
)
);
この例では、
CATALOG_SKU_2017
平方フィートの倉庫に格納されているテーブルは30000以上.結論
この記事では、クエリ内でクエリを実行する方法のサブクエリについて学びました.また、彼らはどのように動作し、彼らの利点と制限を学び、データを使用して例を実行Arctype .
Reference
この問題について(SQLサブクエリの使用方法), 我々は、より多くの情報をここで見つけました https://dev.to/arctype/how-to-use-sql-subqueries-2kn1テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol