PDA

View Full Version : سوال: چطوری اطلاعات جستجو شده از یک جدول را با جدول دیگر مقایسه کنم



rayson
چهارشنبه 27 شهریور 1392, 18:56 عصر
سلام دوستان.
اگر عنوان بد بود ببخشید.
من دو جدول زیر را دارم.
http://www.8pic.ir/images/16862368479027549256.jpg
http://www.8pic.ir/images/36288443435876327925.jpg
یک جدول Group_for_employe و یکی دیگر tbl_mojaz است.
group_for_employe=id,Code_ozviat,id_group,id_madra k_tahsili
tbl_mojaz=id,sonati,felezi,sakhteshode,code_ozviat ,add_sal
قسمت اول برنامه که خودم نوشتم به این صورت است که اطلاعات ( کد عضویت ، آی دی گروه ، آی دی مدرک تحصیلی ) را از جدول group_for_employe را بر اساس ( آی دی گروه و آی دی مدرک تحصیلی ) میگیرد.
مقادیر مشابه را درون dt میریزد. این بخشی که من انجام دادم.
حالا بخشی که در خواست دارم راهنمایی کنید من را این است :
من میخوام جستجوی اولی که انجام دادم و درون dt ریختم :
اطلاعات را ار جدول Tbl_mojaz بگیرم و کد عضویت این جدول را با کد عضویت dt مقا یسه کند و هر داده ای که از نظر کد عضویت مشابه میباشد را درون دیتا گرید ویو نمایش بدهد.
ممنون میشم که راهنمایی کنید .
با تشکر.

veniz2008
پنج شنبه 28 شهریور 1392, 13:42 عصر
سلام.
راه های زیادی داری برای این کار.
اولین توصیه ای که میکنم اینه که تمام کارت رو همون سمت sql انجام بده و نتیجه نهایی رو برگشت بده و هیچ مقایسه ای رو در سمت سی شارپ انجام نده.
برای این کار میتونی نتیجه اون select ای که ریختی توی دیتاتیبل رو با جدول دوم Join کنی روی فیلد مشترک دو جدول. اینطوری میتونی سطرهای مشترک بین نتیجه select و جدول دوم رو بدست بیاری.
روش دوم اینه که میتونی نتیجه select رو با استفاده از دستور IN با جدول دوم مقایسه کنی تا ببینی کدوم کد عضویت از جدول اول با کدوم کد عضویت در جدول دوم مطابقت داره.
راه های دیگه ای هم هست مثل استفاده از دستور EXISTS و ...
تمام این روش ها مزیتش اینه که علاوه بر سرعت بسیار بیشتر، بسیار هم از لحاظ استفاده از مصرف منابع بهینه تر هست. چون فقط نتیجه نهایی برگشت داده میشه و از برگشت رکوردهای اضافی جلوگیری میشه.
موفق باشید.

rayson
پنج شنبه 28 شهریور 1392, 14:08 عصر
Select id_group,id_madrak_tahsili,code_ozviat from group_for_employe where id_group=@id_group and id_madrak_tahsili=@id_madrak_tahsili
این بخش اول میشه حال بخش دوم من میتونم از جدولی به جدول دیگر جوین بدم و جستجو کنم ولی نیمتونم مقادیر بدست امده یک جدول را در چدول دیگر جستجو کنم.
select tbl_mojaz.sonati,tbl_mojaz.felezi,tbl_mojaz.sakhte shode,tbl_mojaz.code_ozviat,tbl_mojaz.add_sal from tbl_mojaz inner join group_for_employe on tbl_mojaz.code_ozviat=group_for_employe.code_ozvia t
چطوری میشه dt گرفته شده سمت sql جستجو کرد ? آیا امکانش وجود داره که این دو دستور را با هم تطبیق داد ؟
با تشکر

veniz2008
پنج شنبه 28 شهریور 1392, 14:34 عصر
اینطوری بنویس :

Select id_group,id_madrak_tahsili,code_ozviat from group_for_employe
INNER JOIN tbl_mojaz on tbl_mojaz.code_ozviat=group_for_employe.code_ozvia t
WHERE id_group=@id_group and id_madrak_tahsili=@id_madrak_tahsili

rayson
پنج شنبه 28 شهریور 1392, 15:32 عصر
مقادیر آخر من باید سنتی ، قلزی ، ساخته شده ، کد عضویت ، سال از جدول TBL_Mojaz باشد.
ابتدا از جدول گروه برای کارمندان 3 مقدار آی دی گروه ، آی دی مدرک تحصیلی و کد عضویت بر اساس (جستجو)ای دی گروه و آی دی مدرک تحصیلی گرقته و بعد از جدول مجاز مقادیر گفته شده( مجاز و سنتی و ساخته شده و کد عضویت ) بر اساس کد عضویت بر گردانده میشود.
دستور اس کیو ال بالا چیزی نیست که بیان کردم.
با تشکر

veniz2008
پنج شنبه 28 شهریور 1392, 16:11 عصر
مقادیر آخر من باید سنتی ، قلزی ، ساخته شده ، کد عضویت ، سال از جدول TBL_Mojaz باشد.
ابتدا از جدول گروه برای کارمندان 3 مقدار آی دی گروه ، آی دی مدرک تحصیلی و کد عضویت بر اساس (جستجو)ای دی گروه و آی دی مدرک تحصیلی گرقته و بعد از جدول مجاز مقادیر گفته شده( مجاز و سنتی و ساخته شده و کد عضویت ) بر اساس کد عضویت بر گردانده میشود.
دستور اس کیو ال بالا چیزی نیست که بیان کردم.
با تشکر
کافی بود یه خورده انعطاف به خرج میدادی.
دوست عزیز همه کدها رو که نباید عینا دیگران به ما بدن. باید خودمون هم روی مساله و پیاده سازیش فکر کنیم.

Select tbl_mojaz.sonati,tbl_mojaz.felezi,tbl_mojaz.sakhte shode,tbl_mojaz.code_ozviat,
tbl_mojaz.add_sal from tbl_mojaz INNER JOIN group_for_employe on
tbl_mojaz.code_ozviat=group_for_employe.code_ozvia t
WHERE id_group=@id_group and id_madrak_tahsili=@id_madrak_tahsili