質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

2回答

3499閲覧

SQLでnot existsを2回用いて商を算出する際の処理の流れについて(minusは用いない)

omm

総合スコア0

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2020/08/16 09:44

前提・実現したいこと

SQLでnot existsを2回用いて商を算出する際の処理の流れについて(minusは用いない)

該当のソースコード

以下のようなテーブルA.Bがあると仮定します。

テーブルA
name|col
1|DB
1|NW
2|DB
2|NW
3|DB

テーブルB
col
DB
NW

テーブルAから、テーブルBの中身を両方含むnameのみ抽出します。(結果は以下)
name
1
1
2
2

実際のソースは以下の通りです。
select A.name
from A
where not exists (
select *
from B
where not exists (
select *
from A C
where A.name = C.name
and B.col = C.col
)
)
;

サブクエリを2回活用し、各結果をnot existsで活用していますが、
実際に処理を行う際に、どのような順番で処理が流れるのでしょうか。
(各サブクエリによる取得結果、その結果に対してnot existsした際の結果など)

以上、宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

exist句の働きについて再度確認し、存在判定や相関副問い合わせについて理解したところ、問題解決しました。
ご回答、ご意見いただいた皆様、ありがとうございました。

投稿2020/08/17 14:28

omm

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

実際に処理を行う際に、どのような順番で処理が流れるのでしょうか。

SQLを書く際に、処理の順番は基本的に考えてはいけません。「何を」抽出するかしかSQLには書けません。

投稿2020/08/16 10:18

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/08/16 10:20

「速度が遅い」などで処理の内容を知る必要がある場合は、EXPLAINで実際のエンジンの処理内容を確認してください。エンジンの種類・状況、データの分布や分量によってすら異なることがありえます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問