PDA

View Full Version : سوال: مرتب سازی سلسله مراتبی به کمک Self Join



babak_xray
دوشنبه 12 مرداد 1388, 00:56 صبح
سلام دوستان
من یه Table به نام Statuses دارم که شامل فیلدی به نام ParentID هست که شماره Status قبلی رو مشخص میکنه. حالا می خوام یه Query بنویسم که Status ها رو به ترتیب از پدر به پسر مرتب کنه. کسی می دونه که آیا با Self Join می شه یه همچین Queryای نوشت؟
در نظر بگیرید تو Table اطلاعات زیر وجود داره:

StatusID
Name
ParentID


1
Status1
NULL


2
Status2


1


3
Status4


4


4
Status3


2


5
Status7


7


6
Status5


3


7
Status6


6

از دوستان کسی می تونه Query پیشنهاد بده که خروجی زیر رو داشته باشه:

Status1
Status2
Status3
Status4
Status5
Status6
Status7

ترتیب فوق به ترتیب از رکورد بی پدر به بچه ترین رکورده :لبخندساده:
خیلی ممنون می شم اگه کسی بتونه راهنمایی کنه

محمد سلیم آبادی
یک شنبه 18 مرداد 1388, 02:28 صبح
سلام.

درست است که بیش از یک هفته از ارسال تاپیک گذشته باشد ولی ما پاسخ خود را می دهیم.

از آنجایی که سوال را در یک تالار مشخص ارسال نکردید نمی دانم که این query را در چه DBMS می

خواهید پیاده سازی کنید به هر حال اگر از SQL Server 2005/2008 استفاده می کنید من به

شما recursive CTE را پیشنهاد می کنم. پست شماره 2 ی تاپیک زیر هم می تواند یک مثال باشد.

http://www.barnamenevis.org/forum/showthread.php?t=172233