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
masaru1006
March 20, 2018
Technology
540
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JSSUG(Japan SQL Server User Group):第4回 SQL Server 2017勉強会
JSSUG(Japan SQL Server User Group):第4回 SQL Server 2017勉強会の資料
masaru1006
March 20, 2018
More Decks by masaru1006
See All by masaru1006
JSSUG(Japan SQL Server User Group):第8回 SQL Server 2017勉強会
masaru1006
0
970
JSSUG(Japan SQL Server User Group):第5回 SQL Server 2017勉強会
masaru1006
0
1.5k
JSSUG(Japan SQL Server User Group):第2回 SQL Server 2017勉強会
masaru1006
0
470
Other Decks in Technology
See All in Technology
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
0
140
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
1
380
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
0
180
【Claude Code】鹿野さんに聞く 私の推しの並行開発環境 大公開 / claude-code-parallel-2026-07-15
tonkotsuboy_com
11
7.2k
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
150
完全自律ロボットを作りたくて、先に開発を自律させた話(ROS Japan UG #63 LT)
rryz09
0
520
Claude Codeとハーネスについて考えてみる
oikon48
19
9.4k
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
13
2k
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
3.5k
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
140
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
0
120
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
2
3.8k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Designing for humans not robots
tammielis
254
26k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Marketing to machines
jonoalderson
1
5.6k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
Designing for Performance
lara
611
70k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Scaling GitHub
holman
464
140k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
Automating Front-end Workflow
addyosmani
1370
210k
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