次に、左外部結合の例を示します。外部結合を参照してください。この例では、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 …