この章では、自己結合として知られている、表[テーブル]とその表[テーブル]自体の間をどのように結合するかを説明します。特に再帰的結合の状況を説明します。このような種類の関連付けが、データ間での従属の説明をしていることを確認します。
1. 最上位
会社の上司の上司、すなわち上司の居ない従業員に関するデータが欲しいと仮定しましょう。
SELECT First_name, Last_name
FROM Worker
WHERE Boss_id IS NULL
下記の表が取得出来ます。
{{h}} |
---|
{{r}} |
2. ファーストレベル
Eddy Fisherが直属の上司の従業員に関するデータが欲しいと仮定しましょう。(これはまたサブクエリ―の使用によっても成されます。)
SELECT W2.First_name, W2.Last_name, W1.Last_name AS DirectBoss
FROM Worker AS W1, Worker AS W2
WHERE W2.Boss_id = W1.ID
AND W1.First_name = 'Eddy' AND W1.Last_name ='Fisher'
下記の表が取得出来ます。
{{h}} |
---|
{{r}} |
3. セカンドレベル
上司が、Eddy Fisherに直接従属する従業員に関するデータが欲しいと仮定しましょう。言い換えれば、階層でのセカンドレベルに関するデータです。
SELECT W3.First_name, W3.Last_name, W2.Last_name AS DirectBoss
FROM Worker AS W1, Worker AS W2, Worker AS W3
WHERE W3.Boss_id = W2.ID
AND W2.Boss_id = W1.ID
AND W1.First_name = 'Eddy' AND W1.Last_name ='Fisher'
下記の表が取得できます。
{{h}} |
---|
{{r}} |