Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JSSUG(Japan SQL Server User Group):第4回 SQL Serv...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
masaru1006
March 20, 2018
Technology
0
520
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
890
JSSUG(Japan SQL Server User Group):第5回 SQL Server 2017勉強会
masaru1006
0
1.4k
JSSUG(Japan SQL Server User Group):第2回 SQL Server 2017勉強会
masaru1006
0
450
Other Decks in Technology
See All in Technology
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.8k
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
390
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
4
460
Kiro IDEのドキュメントを全部読んだので地味だけどちょっと嬉しい機能を紹介する
khmoryz
0
210
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
190
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
260
Oracle AI Database移行・アップグレード勉強会 - RAT活用編
oracle4engineer
PRO
0
110
ECS障害を例に学ぶ、インシデント対応に備えたAIエージェントの育て方 / How to develop AI agents for incident response with ECS outage
iselegant
2
190
1,000 にも届く AWS Organizations 組織のポリシー運用をちゃんとしたい、という話
kazzpapa3
0
140
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
140
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2.5k
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
5.8k
The SEO identity crisis: Don't let AI make you average
varn
0
330
From π to Pie charts
rasagy
0
130
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
A Soul's Torment
seathinner
5
2.3k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
250
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
60
42k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
310
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
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