PDA

View Full Version : پیدا کردن والدهای رکورد در sql



php_love
پنج شنبه 09 بهمن 1393, 12:17 عصر
سلام دوستان

من چنین جدول دارم اسمش رو گذاشتم جدول cat


128009

می خواستم تمام رکوردهایی که فیلد Is_Tafzili شون برابر true هستش رو به همراه نام والدشون بدست بیارم تنها چیزی که به ذهنم رسید کد زیر بود :

select c1.*,
(select Title from cat as c2 where c2.Num=c1.Parent) as Parent_Title2,
(select Parent from cat as c2 where c2.Num=c1.Parent) as Parent_Id2
from cat as c1 where c1.Is_Tafzili=true


ولی فقط تونستم یه والد بالاتر از خودش رو بدست بیارم :


128011


دوستان خواهشا راهنمایی کنید چطور می تونم تو ستون های بعدی نام والدهایه بالاتری رو هم بیارم

در ضمن فیلدهای Num و Parent مشخص کننده والد و فرزند هستند

تشکر

winner1
پنج شنبه 09 بهمن 1393, 15:13 عصر
مگه نمی خواین جوین کنین خوب خیلی ساده جوین بزن

php_love
پنج شنبه 09 بهمن 1393, 16:42 عصر
میشه با توجه به نیازی که دارم یه نمونه واسم دستورشو بنویسید ...

php_love
شنبه 11 بهمن 1393, 08:47 صبح
دوستان خواهشا راهنمایی کنید کله کارم به خاطر این موضوع عقب افتاده :ناراحت:
ممنون

pezhvakco
شنبه 11 بهمن 1393, 11:50 صبح
با این ساختار جدول، برای بدست اوردن سرشاخه ها باید همین کد دستوری را که برای یک پله بالاتر نوشتین برای بالاتر ها هم بنویسید .

php_love
شنبه 11 بهمن 1393, 16:52 عصر
با این ساختار جدول، برای بدست اوردن سرشاخه ها باید همین کد دستوری را که برای یک پله بالاتر نوشتین برای بالاتر ها هم بنویسید .

آیا می تونم تویه همین دستورات selectی که برای بدست آوردن والدهای بالاتر نوشتم شرطی لحاظ کنم که برابر با فیلدی باشه که از select قبلی بدست اومده ؟؟؟ (آخه تست گرفتم نشد)

مثلا به سومین selectی که داخل پرانتز هست نگاه کنید تویه شرط گفتم ستون c3.Num برابر باشه با Parent_Id2 , فیلدی که از select دومی بدست اومده (ولی ارور میده)


select c1.*,
(select Title from cat as c2 where c2.Num = c1.Parent) as Parent_Title2,
(select Parent from cat as c2 where c2.Num = c1.Parent) as Parent_Id2,
(select Title from cat as c3 where c3.Num = Parent_Id2) as Parent_Title3
from cat as c1 where c1.Is_Tafzili=true

php_love
یک شنبه 12 بهمن 1393, 09:28 صبح
دوستان مشکل رو اینجوری حل کردم :لبخندساده:

SELECT c4.Num, c4.Title, c3.Title AS Title3, c3.Num AS Num3, c2.Title AS Title2, c2.Num AS Num2, c1.Title AS Title1, c1.Num as Num1
FROM cat as c4, cat as c3, cat as c2, cat as c1
where (c4.Is_Tafzili = true) and (c4.Parent = c3.Num) and (c3.Parent = c2.Num) and (c2.Parent = c1.Num)

php_love
یک شنبه 12 بهمن 1393, 09:56 صبح
یه سئوال دیگه
چطور می تونم فرزندان یه والد رو حذف کنم ؟؟؟؟
فرضا من شماره آیدیه یه والدی رو دارم می خوام به کاربر هشدار بدم که اگه والد رو حذف کنه تمام فرزندان اون والد نیز از دیتابیس حذف میشن
می خواستم بدونم برای حذف کردن فرزندان باید چی کار کنم ..
اگه نمونه مثالی دارید ممنون میشم راهنمائی کنید .....

php_love
دوشنبه 13 بهمن 1393, 17:51 عصر
دوستان لطفا راهنمائی کنید از پروژم فقط همین آیتم حدف مونده ...
می خوام بدونم چطور می تونم با داشتم آیدیه یک والد و حذف اون , تمام فرزاندانش هم از بانک حذف بشن ؟؟؟

ممنون