**重複の可能性があります。 sql: 自己結合の説明
テーブルがそれ自身のデータを参照する場合、自己結合を使用します。
例えば、Employee テーブルに、現在の従業員の上司を指す SupervisorID カラムがあるとします。
Employee
SupervisorID
このデータをクエリし、1行で2人分の情報を取得するには、以下のように自己結合します:
select e1.EmployeeID, e1.FirstName, e1.LastName, e1.SupervisorID, e2.FirstName as SupervisorFirstName, e2.LastName as SupervisorLastName from Employee e1 left outer join Employee e2 on e1.SupervisorID = e2.EmployeeID
まあ、1つの古典的な例は、従業員とその直属のマネージャーのリストを取得したい場所です。
select e.employee as employee, b.employee as boss from emptable e, emptable b where e.manager_id = b.empolyee_id order by 1
これは基本的に、同じテーブルに格納されている行間に関係がある場所で使用されます。
-従業員。 -マルチレベルのマーケティング。 -機械部品。
等々。..
自己結合とは、単純にテーブルとそれ自身を結合することです。SELF JOIN`キーワードはなく、通常の結合を書くだけです。1つ注意しなければならないのは、自己結合を行う場合、テーブルにエイリアスを使用する必要があるということです。
親子関係など、同じテーブルの行のペアを関連付けたい場合に便利です。以下のクエリは、カテゴリ 'Kitchen'の直近のサブカテゴリの名前をすべて返します。
SELECT T2.name FROM category T1 JOIN category T2 ON T2.parent = T1.id WHERE T1.name = 'Kitchen'
SQLセルフジョインは、テーブルをそれ自体に結合するために使用される通常の結合です。
例:
Select * FROM Table t1, Table t2 WHERE t1.Id = t2.ID
例えば、manageridが同じテーブルのemployeeidの外部キーである従業員テーブルなどです。
例
SELECT E.name, ME.name AS manager FROM dbo.Employees E LEFT JOIN dbo.Employees ME ON ME.employeeid = E.managerid
テーブルがそれ自身のデータを参照する場合、自己結合を使用します。
例えば、
Employee
テーブルに、現在の従業員の上司を指すSupervisorID
カラムがあるとします。このデータをクエリし、1行で2人分の情報を取得するには、以下のように自己結合します:
まあ、1つの古典的な例は、従業員とその直属のマネージャーのリストを取得したい場所です。
これは基本的に、同じテーブルに格納されている行間に関係がある場所で使用されます。
-従業員。 -マルチレベルのマーケティング。 -機械部品。
等々。..
自己結合とは、単純にテーブルとそれ自身を結合することです。SELF JOIN`キーワードはなく、通常の結合を書くだけです。1つ注意しなければならないのは、自己結合を行う場合、テーブルにエイリアスを使用する必要があるということです。
親子関係など、同じテーブルの行のペアを関連付けたい場合に便利です。以下のクエリは、カテゴリ 'Kitchen'の直近のサブカテゴリの名前をすべて返します。
SQLセルフジョインは、テーブルをそれ自体に結合するために使用される通常の結合です。
例:
例えば、manageridが同じテーブルのemployeeidの外部キーである従業員テーブルなどです。
例