PDA

View Full Version : کوئری مشروط با دستور select inner join on



میلاد قاضی پور
پنج شنبه 04 آذر 1389, 16:56 عصر
سلام . من میخوام با دستور select inner join on بعد از اینکه کوئری گیری انجام شد روی نتایج فیلتری انجام بدم .
مثلا میخوام از تیبل اول و دوم( با هم با یک کلید خارجی ریلیشن دارن) اطلاعاتی رو دریافت کنم به شرطی که در تیبل اولم فیلد آی دی 3 باشه.

توضیحات بیشتر در صورت عدم درک:
یک تیبل برای کلاس و یک تیبل دیگر برای دوره ها داریم . در هر کلاس چندین دوره برگزار میشه . تیبل دوره ها فیلدی به نام کلس ای دی داره که با کلید اصلی تیبل کلاس در ارتباطه .
از تیبل ها اطلاعاتی رو میخوام که (کلید اصلی ) تیبل کلاس 4 باشه . یعنی بعد از پیدا کردن کلاس ، دوره های مربوط به کلاس رو هم تیبل دیگه هم پیدا کنه .
با کوئری این دستور (select * from t1 inner join t2 on t1.fld1=t2.fld3) همه ی ردیف ها از تیبل دوره ها .

حمیدرضاصادقیان
پنج شنبه 04 آذر 1389, 21:34 عصر
سلام
شما میتوانید از Derived Table استفاده کنید.
مثال:


Select Tbl1.Id,Tbl2.Id
From Table1 Tbl1
Join
( select Id from Table2
Where ID=2
) Tbl2 on tbl1.id=Tbl2.id

میلاد قاضی پور
پنج شنبه 04 آذر 1389, 22:59 عصر
اینطور نوشتم پیغام خطا داد



select * from dbo.tb_Course_Teacher teacher
join (select dbo.tb_courses.courseid from dbo.tb_courses
where dbo.tb_courses.courseid=3 )
dbo.tb_courses course
on course.courseid=Teacher.courseid


Msg 102, Level 15, State 1, Line 5
Incorrect syntax near '.'.
البته من به چندین حالت امتحان کردم و ارورهای مختلف داشت اما این آخرین ورژن ارور ها بود . به هر صورت تشکر فراوان.

میلاد قاضی پور
پنج شنبه 04 آذر 1389, 23:13 عصر
:دی
با تلاش فراوان موعفّق شدم :)




select * from tb_Course_Teacher
join (select courseid from tb_courses
where courseid=3 )
tb_courses
on tb_courses.courseid=tb_Course_Teacher.courseid