Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JSSUG(Japan SQL Server User Group):第4回 SQL Serv...
Search
masaru1006
March 20, 2018
Technology
0
510
JSSUG(Japan SQL Server User Group):第4回 SQL Server 2017勉強会
JSSUG(Japan SQL Server User Group):第4回 SQL Server 2017勉強会の資料
masaru1006
March 20, 2018
Tweet
Share
More Decks by masaru1006
See All by masaru1006
JSSUG(Japan SQL Server User Group):第8回 SQL Server 2017勉強会
masaru1006
0
850
JSSUG(Japan SQL Server User Group):第5回 SQL Server 2017勉強会
masaru1006
0
1.3k
JSSUG(Japan SQL Server User Group):第2回 SQL Server 2017勉強会
masaru1006
0
450
Other Decks in Technology
See All in Technology
なぜ あなたはそんなに re:Invent に行くのか?
miu_crescent
PRO
0
210
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.1k
Authlete で実装する MCP OAuth 認可サーバー #CIMD の実装を添えて
watahani
0
180
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
420
アプリにAIを正しく組み込むための アーキテクチャ── 国産LLMの現実と実践
kohju
0
230
AI with TiDD
shiraji
1
300
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
160
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
980
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
190
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.4k
20251203_AIxIoTビジネス共創ラボ_第4回勉強会_BP山崎.pdf
iotcomjpadmin
0
140
株式会社ビザスク_AI__Engineering_Summit_Tokyo_2025_登壇資料.pdf
eikohashiba
1
120
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
WENDY [Excerpt]
tessaabrams
8
35k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Accessibility Awareness
sabderemane
0
24
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
200
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
66
Chasing Engaging Ingredients in Design
codingconduct
0
84
sira's awesome portfolio website redesign presentation
elsirapls
0
90
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
81
What's in a price? How to price your products and services
michaelherold
246
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.4k
Transcript
第4回 SQL Server 2017勉強会 -SQLの結合の種類について- 開催日:2018年03月17日 主催:JSSUG(Japan SQL Server User
Group) 2018/03/17 JSSUG(Japan SQL Server User Group) 1
本日の発表の流れ 1.SQLの結合の種類について 1.1.INNER JOIN(内部結合) 1.2.LEFT OUTER JOIN(左外部結合) 1.3.RIGHT OUTER JOIN(右外部結合)
1.4.FULL OUTER JOINT(完全外部結合) 1.5.CROSS JOIN(クロス結合) 1.6.NATURAL JOIN(自然結合) 1.7.UNION(和結合) 1.8.CROSS APPLY、OUTER APPLY 2018/03/17 JSSUG(Japan SQL Server User Group) 2
SQLの結合の種類について 2018/03/17 JSSUG(Japan SQL Server User Group) 3
はじめに デモを交えながら、各結合の方式を見ていきます。 2018/03/17 JSSUG(Japan SQL Server User Group) 4
INNER JOIN(内部結合) 指定した条件が、結合する両方のテーブルにマッチするレコードのみを返す。 ベン図で描くと、以下の通り。 SQL Serverでは、USINGは使えない。 2018/03/17
JSSUG(Japan SQL Server User Group) 5 左 テーブル 右 テーブル
LEFT OUTER JOIN(左外部結合) 結合の左側のテーブルの全レコードと、指定した条件がマッチする右側のレコードのみを返す。 ベン図で描くと、以下の通り。 2018/03/17 JSSUG(Japan SQL
Server User Group) 6 左 テーブル 右 テーブル
RIGHT OUTER JOIN(右外部結合) 結合の右側のテーブルの全レコードと、指定した条件がマッチする左側のレコードのみを返す。 ベン図で描くと、以下の通り。 2018/03/17 JSSUG(Japan SQL
Server User Group) 7
FULL OUTER JOIN (完全外部結合) 指定した条件がマッチするレコードに加えて、マッチしない左右の両方のテーブルのレコードも 返す。 ベン図で描くと、以下の通り。 2018/03/17
JSSUG(Japan SQL Server User Group) 8
CROSS JOIN(クロス結合) 左右両方のテーブルの全てのコンビネーションの行を返す。 結果で得られるレコード数は、[左のテーブルのレコード数] x [右のテーブルのレコード数] に なる。
2018/03/17 JSSUG(Japan SQL Server User Group) 9
NATURAL JOIN(自然結合) NATURAL JOIN の前後で指定されたテーブルの同じ名前のカラムの値を比較し、値が一 致する行を出力する。 INNER JOINだけでなく、LEFT
OUTER、RIGHT OUTER、FULL OUTERも可能。 SQL Serverでは、NATURAL JOINは使えない。 2018/03/17 JSSUG(Japan SQL Server User Group) 10
UNION(和結合) 指定されたテーブルの行を、まとめて表示。 ALLを付けない場合は、重複が排除される。 ALLを付けた場合は、重複が排除されない。 2018/03/17 JSSUG(Japan SQL
Server User Group) 11
CROSS APPLY、OUTER APPLY(1) クエリの外部テーブル式によって返される行毎にテーブル値関数を呼び出すことが出来る。 テーブル値関数は右入力として機能し、外部テーブル式は左入力として機能する。 左入力からの行ごとに右入力が評価され、生成された行の組み合わせが最終的な出力に使用される。
APPLY操作によって生成される列のリストは、左入力の列のセットでとなる。その後には、右入力によって返さ れた列のリストが続く。 APPLY には、CROSS APPLYとOUTER APPLYという2 つの形式が有る。 CROSS APPLYでは、外部テーブルの行のうち、テーブル値関数から結果セットを生成する行のみが返され る。 OUTER APPLYでは、結果セットを生成する行と生成しない行の両方が返される。そのとき、テーブル値関 数によって生成される列には NULL 値が設定される。 ※参考URL:<https://technet.microsoft.com/ja- jp/library/ms175156(v=sql.105).aspx> 2018/03/17 JSSUG(Japan SQL Server User Group) 12
CROSS APPLY、OUTER APPLY(2) 簡単に言うと。 左側に指定したテーブルの各行に対して、関数(ファンクション)を呼び出す事が出来 る。 左側に指定したテーブルの各行に対して、サブクエリを指定する事が出来る。
OUTER APPLYは、右側の戻り値がNULLになる場合も、左側の値が取得される。 (LEFT OUTER JOINの様な感じ。) 2018/03/17 JSSUG(Japan SQL Server User Group) 13
CROSS APPLY、OUTER APPLY(3) 使いどころ。 左側の1行に対して、右側の関数は複数行を返しても良い。 CASE式を使う場合に、SQLをシンプルに記載可能。
動作は分かったが、使いどころは、イマイチ、ピンと来ず。 何か、ご意見有りましたら、頂きたく…(^^;) 2018/03/17 JSSUG(Japan SQL Server User Group) 14
終わりに 2018/03/17 JSSUG(Japan SQL Server User Group) 15
終わりに 皆さん、ご清聴、ありがとうございました。 検証すると、色々と疑問が解けて有意義です! 2018/03/17 JSSUG(Japan SQL Server User
Group) 16
参考URL http://asai-atsushi.blog.so-net.ne.jp/2016-04-25 http://engineersideline.com/sqlリファレンス/テーブルの結合/cross-join-自然結 合-指定結合-union-join/ http://sql55.com/t-sql/t-sql-join-1.php https://qiita.com/chocolamint/items/4bdbcf80977fac9c301b
http://asai-atsushi.blog.so-net.ne.jp/2016-03-21 http://dcx.sap.com/1201/ja/dbusage/apply-joins-joinsasp.html 2018/03/17 JSSUG(Japan SQL Server User Group) 17