2011-11-12 5 views
3

私はインターネットで自己勉強をしていることを理解しようとしましたが、満足のいく説明が見つかりませんでした。それを使用する場所や使用する理由などの例を挙げて説明してください。あなたが質問でそれを説明することができればうれしいでしょう。自己紹介をしてください

答えて

6

例を含めて、entry about self-joinというWikipediaの登録(SQL)ページがあります。

別の例として、親子関係を示すために、あなたはIdParentIdの列を持つPersonテーブルがあるとし、あなたが何かするかもしれない:

SELECT parent.Name, child.Name 
FROM Person parent 
INNER JOIN Person child ON parent.Id = child.ParentId 
0

をそれのコピーで参加し、通常と同じですテーブルそのもの。

0

自己結合により、管理者はリレーショナルデータを1つのテーブルに集約する強力な方法を提供します。実際には、自己結合は、特定のテーブルを自身に結合することによって実行されます。
http://www.devshed.com/c/a/MySQL/MySQL-Table-Joins/4/

1

自己結合を望む理由の1つは、テーブルに重複を見つけることです。あなたのテーブルに同じ名前の人を見つけたいと言う、あなたはそれが好き行うことができます:

SELECT table1.name FROM people AS table1 , people AS table2 
WHERE table1.name = table2.name 
AND table1.id != table2.id 
3

理由を私は階層も自己結合を使用します。

例: あなたはすべての従業員をテーブルに入れています。すべての従業員にマネージャーがいます。従業員と彼のマネージャーをリンクさせることができます。

表emp(loyee)。 COLSのEMP_ID、マネージャー、名前

ので、あなたが

select e.name employeename, m.name managername 
from emp e, emp m where e.manager = m.emp_id 
0

SELF JOINを管理者の名前と一緒にすべての従業員を得ることができますか?例えば

我々は「マネージャーのAS enter image description here

SELECT CONCAT(m.name、 ''、m.email)、CONCAT(e.name、 ''、e.email)この表を取りますAS 'レポーター' FROM collage e JOINコラージュm ON m.emp_id = e.role_id;

enter image description here

関連する問題