از Self Join در بدست آوردن رکورد هایی که با رکورد های دیگری در همان جدول ارتباط دارند استفاده می شود. برای مثال جدول employees رو در نظر بگیرید ، هر کارمند می تواند یک مدیر داشته باشد. Self Join در SQL به معنی پیوند یک جدول با خودش می باشد. شما می توانید از یک نام مستعار برای همان جدول استفاده کنید تا بتوانید Self Join را بین آنها اعمال نمایید.
جدول employees :
emp_id |
emp_name |
emp_manager_id |
1 |
John |
Null |
2 |
Tom |
1 |
3 |
Smith |
1 |
4 |
Albert |
2 |
5 |
David |
2 |
6 |
Murphy |
5 |
7 |
Petra |
5 |
اکنون برای بدست آوردن نام مدیران از جدول بالا می توان از Self Join استفاده کرد :
select e1.emp_name AS 'manager', e2.emp_name AS 'employee'
from employees AS e1 JOIN employees AS e2
on e1.emp_id=e2.emp_manager_id
نتیجه :
manager |
employee |
John |
Tom |
John |
Smith |
Tom |
Albert |
Tom |
David |
David |
Murphy |
David |
Petra |
در مثال بالا جدول employees توسط نام مستعار e1 و e2 با خودش پیوند زده می شود در واقع این کار موجب ساخته شدن دو view از جدول employees می گردد.
from employees AS e1 join employees AS e2
on e1.emp_id=e2.emp_manager_id
در اینجا e2.emp_manager_id آیدی مدیر را از view دوم به e1 پاس می کند تا نام مدیران را بدست آورد.
Farhad Mortezapour
October 2008
Copyright © 2008 fmh.blogsky.com All Rights Reserved