PDA

View Full Version : join and Null



zman123456
سه شنبه 30 مرداد 1386, 13:35 عصر
سلام
زمانی که بین چند جدول رو با هم دیگر inner join میزنیم اگر یکی از فیلد های ارتباطی در یک جدول از نوع Null باشه دیگه تمام اون رکورد رو نشون نمی ده.
مثال:
یک پرونده اول پذیرش میشه و بعد یک کارشناس بهش اختصاص میدن.من می خوام یه گزارش بگیرم که اطلاعات هر پرونده رو با کارشناسان نشون بده ولی اگر کارشناس نداشت نشون بده ولی به جای اسم کارشناس بنویشه "بدون کارشناس" ولی نمی خوام تو جدول کارشناسان یه کد برای بدون کارشناس قرار بدم و پرونده ها در ابتدا کد بدون کارشناس رو default داشته باشن.

hasti.lm
سه شنبه 30 مرداد 1386, 14:09 عصر
با سلام

شما می‌توانید از دستور عمل‌های Right Outer Join و Left Outer Join و Full Outer Join استفاده کنید که بنابر نیازی که دارید این دستور عمل ها مقدار NULL را حذف نمی‌کنند.
و برای نشان دادن مقدار بدون کارشناس بجای NULL میتونی از دستور
ISNULL ( check_expression , replacement_value )
استفاده کنی.

Kamyar.Kimiyabeigi
چهارشنبه 31 مرداد 1386, 08:51 صبح
SELECT a.au_fname, a.au_lname, isnull(p.pub_name, 'کارشناس ندارد')
FROM authors a LEFT OUTER JOIN publishers p
ON a.city = p.city
ORDER BY p.pub_name ASC, a.au_lname ASC, a.au_fname ASC
در مثال بالا از جدول authors همه رکوردها رو میاره و از جدول publishers اونهایی رو میاره که با authors در فیلد city برابر باشند حالا شما به جای authors میتونین جدول پرونده رو قرار بدین و به جای publishers جدول کارشناس رو