13,000
回編集
112行目: | 112行目: | ||
<br> | <br> | ||
なお、SQL Serverでは、LEFT OUTER JOINをLEFT JOINと記述してもよい。<br> | なお、SQL Serverでは、LEFT OUTER JOINをLEFT JOINと記述してもよい。<br> | ||
<br> | |||
===== LEFT OUTER JOIN句の使用方法 ===== | |||
SQL Serverで左外部結合するには、LEFT 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 | |||
|- | |||
| A005 | |||
|- | |||
| A010 | |||
|} | |||
</center> | |||
<br> | |||
<center> | |||
'''osaka_autテーブル''' | |||
{| class="wikitable" | |||
|- | |||
! no | |||
|- | |||
| A001 | |||
|- | |||
| A002 | |||
|- | |||
| A009 | |||
|} | |||
</center> | |||
<br> | |||
===== 例1 LEFT OUTER JOIN句で複数テーブルを結合する ===== | |||
LEFT OUTER JOIN句で優先されるテーブルは左側にあるempテーブルである。<br> | |||
empテーブルは優先されるテーブルなので、全レコードが抽出される。<br> | |||
以下の例では、empテーブルは5レコードあるので、empテーブルのe.noとe.nameは全て表示される。<br> | |||
<br> | |||
tokyo_autテーブルとosaka_autテーブルは、ON句で指定された条件に一致する場合のみ抽出される。<br> | |||
tokyo_autテーブルは、noがA001とA005のみなので、この2レコードのみ表示される。A010は結合条件に一致しないため表示されない。<br> | |||
osaka_autテーブルは、noがA001とA002のみなので、この2レコードのみ表示される。A009は結合条件に一致しないため表示されない。<br> | |||
<source lang="sql"> | |||
--LEFT OUTER JOINの結合 | |||
SELECT e.no, e.name, t.no tokyo, o.no osaka | |||
FROM emp e | |||
LEFT JOIN tokyo_aut t ON e.no = t.no | |||
LEFT JOIN osaka_aut o ON e.no = o.no | |||
WHERE e.no < 'A100'; | |||
</source> | |||
<br> | |||
<center> | |||
{| class="wikitable" | |||
|- | |||
! e.no !! e.name !! tokyo !! osaka | |||
|- | |||
| A001 || 佐藤花子 || A001 || A001 | |||
|- | |||
| A002 || 田中太郎 || || A002 | |||
|- | |||
| A003 || 佐藤花子 || || | |||
|- | |||
| A004 || 佐藤花子 || || | |||
|- | |||
| A005 || 藤田学 || A005 || | |||
|} | |||
</center> | |||
<br><br> | <br><br> | ||