PDA

View Full Version : جستجوی اطلاعات بین دو جدول



san_sal_2008
چهارشنبه 29 مرداد 1393, 21:27 عصر
سلام دوستان من تو ساخت کوئری برایجستجو مشکل دارم ممنون میشم کمک کنیدحلش کنم
من 3تا جدول دارم
1- جدول کاربران
2- جدول کلاسها
3- جدول ثبت نام که آیدی کاربر و آیدی کلاس رو داخلش گذاشتم .
اگر بخوام یه جستجو کنم وبگم که کابرانی رو نشون بده که مثلا در کلاس فتوشاپ ثبت نام کردن چه جوری این جدولا رو میگرده
اصن تو تحلیلش اشکال دارم ..

barzin144
چهارشنبه 29 مرداد 1393, 21:32 عصر
select * from Users as U join Register as R on R.UserID=U.UserID join Classes as C on C.ClassID=R.ClassID
where C.ClassID=2 //IDکلاس فتوشاپ

nice_boy_a
چهارشنبه 29 مرداد 1393, 21:42 عصر
سلام.
فرض کن کد درس فتوشاپ 100 هست و علی ، محمد و حسن با کدهای 10، 20 و 30 در کلاس فتوشاپ ثبت نام کردن.
پس جدول کاربرا شامل: علی، محمد، حسن
جدول درس شامل: فتوشاپ
و در نتیجه جدول ثبت نام شامل:




UserID

CorseID

id



10

100

1



20

100

2



30

100

3




حالا وقتی میگی کابرانی رو نشون بده که در کلاس فتوشاپ ثبت نام کردن،SQL میاد و یک ارتباطی بین جدول درس و جدول ثبت نام برقرار میکنه (بوسیله ی کلید اصلی و خارجی که همون کد درس هست) و رکوردهایی رو برمیگردونه که کد درس تو هر دو تا جدول باشه و بر اساس شرط شما اون رکوردهایی رو که اسم درسشون فتوشاپ هست رو برمیگردونه (این روش پیوند جداول هست یا join)
پس دو بار اطلاعات رو برمیگردونه، یه بار واسه پیوند جداول، یه بار واسه اعمال شرط where.

روش دیگه هم SQL تو در تو هست که یه خورده از join پیچیده تره!

san_sal_2008
چهارشنبه 29 مرداد 1393, 22:08 عصر
البته من باید classIDرو برابر @classid قرار بدم؟ چون کلاسهام مختلفه باید ورودی بگیرم؟
خیلی خیلی لطف میکنید یادم میدید مرسیییییی

san_sal_2008
چهارشنبه 29 مرداد 1393, 22:17 عصر
من اون کوئری رو که دوستمون بالا نوشته بودن رو اجرا کردم درسته فقط اونجا آیدی رو به صورت ثابت برابر با کددرس گذاشتن ولی من میخوام به صورت دستی نام درس ازیه کامبوباکس انتخاب شه و جستجو کنه

nice_boy_a
چهارشنبه 29 مرداد 1393, 22:30 عصر
به جای اون کد درس یا کد کلاس می تونی بنویسی
ClassName='Photoshop'

اگه به صورت پارامتری کار میکنی
ClassName=@Parameter

اگه به صورت سنتی کهر میکنی
"ClassName=" + DropDownList.SelectedItem

san_sal_2008
چهارشنبه 29 مرداد 1393, 22:48 عصر
تبدیل نوع ها مشکل دارم :( وقتی بااین اجرا میکنم میگه نمیتونم نوع intرو به ورکر تبدیل کنم:
;()Tbl_Sabt showclass = new Tbl_Sabt

()) GridView4.DataSource = showclass.ShowUserClass(Convert.ToString(DropDownL ist1.SelectedValue
;() GridView4.DataBind

nice_boy_a
چهارشنبه 29 مرداد 1393, 23:00 عصر
دقیقا داری بر اساس چی جستجو میکنی؟ کد درس یا نام درس؟
SelectedValue که نوشتی معمولا واسه نگه داری کدهای جداول استفاده میشه.

san_sal_2008
چهارشنبه 29 مرداد 1393, 23:03 عصر
یه کامبوباکس گذاشتم که داخلش رو از جدول کلاس میگیره فیلد نام درس
حالا میخوام وقتی نام درس انتخاب شد بره کاربرهایی که تواین درس ثبت نام شدن رو نشون بده
کوئری رو اجرا میگیرم درسته ولی با کددرس با نام درس مشکل دارم
یذره حوصله کنید اینو یادم بدید ممنون میشم :)

nice_boy_a
چهارشنبه 29 مرداد 1393, 23:17 عصر
کامبوباکس رو چطوری مقدار دهی میکنی؟ با کد یا با ابزارهای Toolbox ؟

san_sal_2008
چهارشنبه 29 مرداد 1393, 23:18 عصر
جواب گرفتم مممنون خیلی لطف کردید :چشمک::چشمک: