📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の5版が非表示)
16行目: 16行目:
<br>
<br>
===== INNER JOIN句の使用方法 =====
===== INNER JOIN句の使用方法 =====
SQL Serverで内部結合するには、INNER JOIN句の前後に結合するテーブルを記述する。
SQL Serverで内部結合するには、INNER JOIN句の前後に結合するテーブルを記述する。<br>
テーブル名の後にスペースを入れて別名を指定する。
テーブル名の後にスペースを入れて別名を指定する。<br>
ON句は結合する列を指定する。列はテーブル名の別名を必ず付ける。
ON句は結合する列を指定する。列はテーブル名の別名を必ず付ける。<br>
 
<br>
内部結合は、INNER JOIN句を使用せずに、結合条件をWHERE句で記述することもできる。
内部結合は、INNER JOIN句を使用せずに、結合条件をWHERE句で記述することもできる。<br>
<br>
<br>
===== サンプルデータ =====
===== サンプルデータ =====
67行目: 67行目:
===== 例1  INNER JOIN句で結合する =====
===== 例1  INNER JOIN句で結合する =====
empテーブルとtokyo_autテーブル、osaka_autテーブルの3つのテーブルをINNER JOIN句で内部結合する。<br>
empテーブルとtokyo_autテーブル、osaka_autテーブルの3つのテーブルをINNER JOIN句で内部結合する。<br>
これら3つのテーブルに、noが存在するレコードであるA001のみ抽出される。
これら3つのテーブルに、noが存在するレコードであるA001のみ抽出される。<br>
  <source lang="sql">
  <syntaxhighlight lang="sql">
  --INNER JOIN
  --INNER JOIN
  SELECT e.no, e.name, t.no tokyo, o.no osaka
  SELECT e.no, e.name, t.no tokyo, o.no osaka
75行目: 75行目:
  JOIN osaka_aut o ON t.no = o.no  
  JOIN osaka_aut o ON t.no = o.no  
  WHERE e.no < 'A100';
  WHERE e.no < 'A100';
  </source>
  </syntaxhighlight>
<br>
<br>
<center>
<center>
87行目: 87行目:
<br>
<br>
===== 例2  WHERE句で結合する(INNER JOIN句を使用しないパターン) =====
===== 例2  WHERE句で結合する(INNER JOIN句を使用しないパターン) =====
  <source lang="sql">
  <syntaxhighlight lang="sql">
  --INNER JOIN句を使用しない
  --INNER JOIN句を使用しない
  SELECT e.no, e.name, t.no tokyo, o.no osaka
  SELECT e.no, e.name, t.no tokyo, o.no osaka
94行目: 94行目:
  AND  e.no = t.no
  AND  e.no = t.no
  AND  t.no = o.no;
  AND  t.no = o.no;
  </source>
  </syntaxhighlight>
<br>
<br>
<center>
<center>
173行目: 173行目:
tokyo_autテーブルは、noがA001とA005のみなので、この2レコードのみ表示される。A010は結合条件に一致しないため表示されない。<br>
tokyo_autテーブルは、noがA001とA005のみなので、この2レコードのみ表示される。A010は結合条件に一致しないため表示されない。<br>
osaka_autテーブルは、noがA001とA002のみなので、この2レコードのみ表示される。A009は結合条件に一致しないため表示されない。<br>
osaka_autテーブルは、noがA001とA002のみなので、この2レコードのみ表示される。A009は結合条件に一致しないため表示されない。<br>
  <source lang="sql">
  <syntaxhighlight lang="sql">
  --LEFT OUTER JOINの結合
  --LEFT OUTER JOINの結合
  SELECT e.no, e.name, t.no tokyo, o.no osaka
  SELECT e.no, e.name, t.no tokyo, o.no osaka
180行目: 180行目:
  LEFT JOIN osaka_aut o ON e.no = o.no  
  LEFT JOIN osaka_aut o ON e.no = o.no  
  WHERE e.no < 'A100';
  WHERE e.no < 'A100';
  </source>
  </syntaxhighlight>
<br>
<br>
<center>
<center>
206行目: 206行目:
<br>
<br>
SQL Serverでは、RIGHT OUTER JOINをRIGHT JOINと記述してもよい。<br>
SQL Serverでは、RIGHT OUTER JOINをRIGHT JOINと記述してもよい。<br>
<br>
外部結合には、LEFT OUTER JOINとRIGHT OUTER JOINがあるが、LEFT OUTER JOINを使用するのが一般的なので、<br>
ここでは、RIGHT OUTER JOINの例は省略する。<br>
<br><br>
<br><br>


214行目: 217行目:
<br>
<br>
SQL Serverでは、FULL OUTER JOINをFULL JOINと記述してもよい。<br>
SQL Serverでは、FULL OUTER JOINをFULL JOINと記述してもよい。<br>
<br>
===== FULL OUTER JOIN句の使用方法 =====
SQL Serverで完全外部結合するには、FULL OUTER JOIN句の前後に結合するテーブルを記述する。<br>
テーブル名の後にスペースを入れて別名を指定する。<br>
ON句は、結合する列を指定する。列はテーブル名の別名を必ず付ける。<br>
<br>
===== サンプルデータ =====
<center>
'''empテーブル'''<br>
{| class="wikitable"
|-
! no !! name
|-
| A001 || 佐藤花子
|-
| A002 || 田中太郎
|-
| A003 || 加藤一
|-
| A004 || 青木花
|-
| A005 || 藤田学
|}
</center>
<br>
<center>
'''tokyo_autテーブル'''
{| class="wikitable"
|-
! no
|-
| A001
|-
| A010
|}
</center>
<br>
===== 例  FULL OUTER JOIN句で結合する =====
empテーブルとtokyo_autテーブルをFULL OUTER JOINで完全外部結合する。<br>
empテーブルにしか存在しないレコード、tokyo_autテーブルにしか存在しないレコードも含めて全て抽出される。<br>
<syntaxhighlight lang="sql">
--FULL JOIN
SELECT e.no, e.name, t.no tokyo
FROM emp e
JOIN tokyo_aut t ON e.no = t.no
WHERE e.no < 'A100'
</syntaxhighlight>
<br>
<center>
{| class="wikitable"
|-
! e.no !! e.name !! tokyo
|-
| A001 || 佐藤花子 || A001
|-
| A002 || 田中太郎 ||
|-
| A003 || 加藤一 ||
|-
| A004 || 青木花 ||
|-
| A005 || 藤田学 ||
|-
|  ||  || A010
|}
</center>
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:SQL_Server]]
[[カテゴリ:SQL_Server]]