次に、左外部結合の例を示します。外部結合を参照してください。この例では、skillsテーブルには各種の技能とそれに関連するコードがリストされています。empテーブルには従業員番号と技能コードがリストされています。
| skills | emp | |||
|---|---|---|---|---|
| skill_no | skill_name | emp_no | skill_no | |
| 1 | baker | 6123 | 1 | |
| 2 | doctor | 6234 | 1 | |
| 3 | farmer | 6392 | 3 | |
| 4 | lawyer | 7281 | 5 | |
| 5 | mason | 7362 | 4 | |
| 6 | tailor | 6169 | 1 |
次の問合わせを使用して、従業員が登録されていない技能分野を確認することができます。
SELECT skills.skill_name, emp.emp_no FROM skills LEFT OUTER JOIN emp ON skills.skill_no=emp.skill_no;
次の結果が返されます。nullは疑問符(?)文字として表示されることに注意してください。BTEQでは、このようにnullを報告します。BTEQの詳細については、<Basic Teradata® Queryリファレンス、B035-2414>を参照してください。
| skill_name ---------- |
emp_no ------ |
|---|---|
| baker | 6123 |
| baker | 6234 |
| baker | 6169 |
| doctor | ? |
| farmer | 6392 |
| lawyer | 7362 |
| mason | 7281 |
| tailor | ? |
結果にすべての技能を含めるためには、外部結合を指定しなければなりません。以下の例のように単純なFROM句だけを使用した暗黙の結合では、nullの行は返されないため(つまり、対応する従業員がいない場合)、上の例ではdoctorまたはtailorはリストされません。
… FROM employee, skills …