ورود

View Full Version : کوئری گرفتن از یک جدول با مکانیزم tree



oliya24
سه شنبه 07 شهریور 1391, 18:13 عصر
سلام و خسته نباشید دوستان من یه جدول دارم که داده های اون در خود جدول به هم ریلیشن خوردن و ارتباط پدر و فرزندی دارن حالا من به جند مشکل تو کوئری گرفتن از این جدول برخوردم که یکیش اینه که نمیتونم فیلدهایی که ا هم ارتباط پدر و فرزندی دارن رو استخراج کنم !!!
میخواستم خواهش کنم از شما دوستا ن در این مطلب من رو یاری کنید
با تشکر
این کد ساخت جدول با داده هایشCreate Table biza(PK int,FK int,Caption nVarChar(200))
Create Index biza_PK On biza(PK)
Create Index biza_FK On biza (FK)
Insert Into biza Values(1,0,N'پیتزا')
Insert Into biza Values(2,0,N'ساندویچ')
Insert Into biza Values(3,0,N'غذای رستورانی')
Insert Into biza Values(4,1,N'پپرونی')
Insert Into biza Values(5,1,N'یونانی')
Insert Into biza Values(6,1,N'فرانسوی')
Insert Into biza Values(7,2,N'همبرگر')
Insert Into biza Values(8,2,N'کالباس')
Insert Into biza Values(9,2,N'مرغ')
Insert Into biza Values(10,4,N'ساده')
Insert Into biza Values(11,4,N'مخصوص')
Insert Into biza Values(12,7,N'ساده')
Insert Into biza Values(13,7,N'مخصوص')
Insert biza Values(14,4,N'با قارچ')
Insert biza Values(15,4,N'بدون قارچ')
------------------------------------------
در ضمن این هم کدی که برای کوئری نوشتم و جواب نداد
WITH Emp_CTE AS (
SELECT pk,fk,caption
FROM biza

WHERE PK IS NULL
UNION ALL
SELECT e.pk,e.fk,e.caption
FROM biza e
INNER JOIN Emp_CTE ecte ON ecte .fK =e.pK
)
SELECT *
FROM Emp_CTE

oliya24
سه شنبه 07 شهریور 1391, 20:11 عصر
دوستان به نتیجه رسیدم با کمک برادرم کوئری رو به این صورت تغییر دهید به نتیجه میرسید
WITH Emp_CTE AS (
SELECT pk,fk,caption
FROM biza
UNION ALL
SELECT e.pk,e.fk,e.caption
FROM biza e
INNER JOIN Emp_CTE ecte ON ecte .fK =e.pK
)
SELECT distinct *
FROM Emp_CTE
where FK =1