[TIL]IN+サブクエリ、必要に応じてクエリを書き込む
sqlにはあまり考えずに使える文法があります.
まず、基礎から説明すると、inがwhereセクションで複数のターゲットがカラムの値と一致するかどうかを決定するのに非常に有用である.
inを利用してこの問題を解決することができる.⬇
サブクエリとの使用方法を理解するには、次の2つのテーブルを考慮します.
Aには職員の名前と職位があり、Bには年齢と性別がある.
女性社員の名前とポジションを知りたいなら?
2つのテーブルをemployee IDでB.性別として署名することもできます.でも説明のために
まず,Bテーブルで性別情報を用いて性別="F"のemployee IDを問い合わせる.
このクエリの結果は、101、123を出力する.
Aテーブルのwhereセクションでは、複数の条件でemployee ID 101123を問合せた従業員が、所望の結果を得ることができる.
つまり、
もちろん、サブクエリを使うのはよくない選択もあります.(注意:😆)
in (서브쿼리)
の形態です使用法
まず、基礎から説明すると、inがwhereセクションで複数のターゲットがカラムの値と一致するかどうかを決定するのに非常に有用である.
select *
from table
where columnA = 3 or columnA = 4 or columnA = 5
上記のクエリのようにorを用いて記述することができるが,値が大きいほどクエリが長くなり毒性が低くなる.inを利用してこの問題を解決することができる.⬇
select *
from table
where columnA in (3,4,5)
まだいない.select *
from table
where columnA <> 3 or columnA <> 4 or columnA <> 5
こんなに簡単に使えますselect *
from table
where columnA not in (3,4,5)
多重条件でなくても仕事ができる.select *
from table
where columnA not in (3)
複数の条件が必要かもしれませんが、まだ分からない場合は、in+単一の条件に構成することが多いです.in+サブクエリ
サブクエリとの使用方法を理解するには、次の2つのテーブルを考慮します.
Aには職員の名前と職位があり、Bには年齢と性別がある.
女性社員の名前とポジションを知りたいなら?
2つのテーブルをemployee IDでB.性別として署名することもできます.でも説明のために
in (서브쿼리)
形を使いましょうまず,Bテーブルで性別情報を用いて性別="F"のemployee IDを問い合わせる.
select employee_ID
from B
where gender = 'F'
このクエリの結果は、101、123を出力する.
Aテーブルのwhereセクションでは、複数の条件でemployee ID 101123を問合せた従業員が、所望の結果を得ることができる.
select *
from A
where employee_ID in (101, 123)
サブクエリを使用して次のように書き換えます.つまり、
101, 123
の代わりにクエリーを使用します.select *
from A
where employee_ID in (
select employee_ID
from B
where gender = 'F'
)
結合はたまに複雑な考慮が必要な点があり、サブクエリは比較的簡単で直感的で、よく使用されています.もちろん、サブクエリを使うのはよくない選択もあります.(注意:😆)
Reference
この問題について([TIL]IN+サブクエリ、必要に応じてクエリを書き込む), 我々は、より多くの情報をここで見つけました https://velog.io/@khnn/IN-서브쿼리-생각대로-쿼리-쓰기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol