PDA

View Full Version : سوال: inner join query



seeker
پنج شنبه 24 مرداد 1387, 16:31 عصر
با سلام خدمت دوستان
فرض کنید دو جدول داریم که
اول : شامل id (پرایمری کی) ، نام ، نام خانوادگی و ...
دوم: شامل ID (پرایمری کی) ، شرح ، شخص و ...
از id جدول اول یک ریلیشن به شخص جدول دوم به صورت یک به بی نهایت متصل است
رکورد های جدول دوم به گونه ایست که در بعضی از آنها فیلد شخص مقدار دهی شده ( با اعداد قابل قبول) و در بعضی هم فیلد شخص خلی میباشد.
حالا یک کوئری مینویسیم که تمام فیلد های جدول دوم را دارد به علاوه چند فیلد از جدول اول
مشکل اینجاست که فقط رکوردهایی نمایش داده میشوند که فیلد شخص آنها مقدار داشته باشد.
در صورتی که نیاز ما نمایش تمام رکورد های جدول دوم است. حال اگر فیلد شخص دارای مقدار باشد مشخصات شخص نمایش داده شود و اگر خالی است مشخصاتی نمایش داده نشود.

dadsara
شنبه 26 مرداد 1387, 14:33 عصر
باسلام
در صورت امکان نمونه فایل را ضمیمه کن

amirzazadeh
دوشنبه 28 مرداد 1387, 07:57 صبح
دوست من فكر ميكنم مشكل شما با left join حل ميشه در اين حالت كليه ركوردهاي جدول دوم بعلاوه ركوردهايي از جدول اول كه فيلد كليدي مشترك دارن نمايش داده ميشود.
.......................
موفق باشيد

seeker
دوشنبه 28 مرداد 1387, 10:11 صبح
باسلام
در صورت امکان نمونه فایل را ضمیمه کن
این هم یک مثال:
در کوئری فقط رکورد هایی نمایش داده میشن که فیلد shakhs آنها دارای مقدار باشد. اما نیاز ما تمام رکورد های جدول kharid است

seeker
دوشنبه 28 مرداد 1387, 11:51 صبح
دوست من فكر ميكنم مشكل شما با left join حل ميشه در اين حالت كليه ركوردهاي جدول دوم بعلاوه ركوردهايي از جدول اول كه فيلد كليدي مشترك دارن نمايش داده ميشود.
.......................
موفق باشيد
دقیقا مشکل من رو حل کرد البته با یکم تغیر
right outer join
بسیار متشکرم
حالا مشکل بعدی اینه که اگر از چهار جدول استفاده کنم و بخوام که در مورد دوتاشون right outer join باشه و بقیه inner join باشن خطا میده و دیگه کار نمیکنه

amirzazadeh
سه شنبه 29 مرداد 1387, 08:05 صبح
دقیقا مشکل من رو حل کرد البته با یکم تغیر
right outer join
بسیار متشکرم
حالا مشکل بعدی اینه که اگر از چهار جدول استفاده کنم و بخوام که در مورد دوتاشون right outer join باشه و بقیه inner join باشن خطا میده و دیگه کار نمیکنه
دوست عزيز دراين حالت بهتره دو تا كوئري جداگانه درست كنين وبعد در كوئري سوم با استفاده از دوكوئري اول فيلدهاي مورد نظر رو بيارين.(مثل فيلد هاي محاسباتي)
.......................
موفق باشيد