PDA

View Full Version : دستور join ترکیبی



na3er-faraji
یک شنبه 10 بهمن 1389, 10:24 صبح
http://up.iranblog.com/images/uv1283ql52q49xr2gh.jpg
سلام . دو تا جدول دارم یکی Lesson و دیگری LessonInfo که تو جدول Lesson کد درس و کد رشته و نام درس نگهداری میشه و تو جدول LessonInfo کد درس , کد درس پیشنیاز, و کد درس هم نیاز نگهداری میشه. میخام یه دستوری با sql بنویسم که اطلاعات LessonInfo رو بگیرم اما به جای کد درس , کد درس پیشنیاز و کد درس هم نیاز نام این 3 تا درس رو نشون بده.

Reza_Yarahmadi
یک شنبه 10 بهمن 1389, 11:34 صبح
با 2 3 تا join تركيبي ميتونيد اين كار رو انجام بديد.


Select
t,LessonName as LessonName,
t2,LessonName as Pishniaz,
t3,LessonName as Hamniaz,
From
tblLessonInfo tli Inner Join tblLesson t
On
tli.LessonId = t.Id
Left Outer Join tblLesson t2
On
tli.Pishniaz = t2.Id
Left Outer Join tblLesson t3
On
tli.Hamniaz = t3.Id

na3er-faraji
یک شنبه 10 بهمن 1389, 12:18 عصر
آريالا این دستور کار نکرد. عکس جدول دیگم رو هم گذاشتم بتونید بهتر راهنمایی کنید.

65717

Reza_Yarahmadi
یک شنبه 10 بهمن 1389, 13:13 عصر
يعني چي كار نكرد؟ اين دستور خاصي نيست كه بخواد كار نكنه!! خروجي مورد نظر رو نداد؟ خطا ميده؟
در صورتي كه كد من رو فقط كپي كرد و تست كرديد مسلما خطا ميده‌ ، چند جا به جاي . از , استفاده كردم كه باعث خطا ميشه.
حالت درستش بصورت زير ميشه

Select
t.LessonName as LessonName,
t2.LessonName as Pishniaz,
t3.LessonName as Hamniaz,
From
tblLessonInfo tli Inner Join tblLesson t
On
tli.LessonId = t.Id
Left Outer Join tblLesson t2
On
tli.Pishniaz = t2.Id
Left Outer Join tblLesson t3
On
tli.Hamniaz = t3.Id
در صورت كار نكردن علت اين امر رو هم بيان كنيد.

na3er-faraji
یک شنبه 10 بهمن 1389, 14:17 عصر
اون ویرگول ها رو که درست کردم. اما من با دستور join اصلا آشنایی ندارم متاسفانه. میشه بگید کجای این کد باید ویرایش بشه. مثلا این t و tli که نوشتید از کجا اومد. شرمنده بازم.

Reza_Yarahmadi
یک شنبه 10 بهمن 1389, 14:45 عصر
اون t يك اسم مجازي براي جدول ، براي راحتي در دسترسي به فيلدها مورد استفاده قرار ميگيره.
در مورد Join هم توي سايت جسجتو كنيد مطالب زيادي در اين خصوص وجود داره. يك مقاله تقريبا كامل جناب كفاش توي همين تالار گذاشتند اون ميتونه كمك زيادي بهتون كنه.

na3er-faraji
دوشنبه 11 بهمن 1389, 13:27 عصر
ببخشید شرمنده بابت مزاحمت دوباره . لینک اون تاپیک آقای کفاش رو میدید من پیداش نکردم.

Reza_Yarahmadi
دوشنبه 11 بهمن 1389, 13:37 عصر
http://barnamenevis.org/showthread.php?106494-برنامه-نویسی-تحت-SQLServer (http://barnamenevis.org/showthread.php?106494-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AA%D8%AD%D8%AA-SQLServer)