ورود

View Full Version : inner join VS Where



ali_up1
شنبه 07 دی 1392, 12:12 عصر
سلام دوستان
نمیدونم سوالمو جای درستی مطرح میکنم یا نه

فرض کنید 2تا جدول به صورت master/detail یی داریم
میخوام جدول detail رو update کنم،در حالی که توی where باید از ی فیلد master ام استفاده کنم که توی detail این فیلد رو ندارم



soal:

کدوم یکی رو به عنوان subQuery یه updatam استفاده کنم؟؟هر دو کار میکنه


1)
select * from master inner join detail on fieldemoshtarak

where maste.field1 felan bashe
ya inke begam

2)
select * from detail
where detail.fieldemoshtarak in
( select fieldemoshtarak from master where master.field1 felan bashe)
این عکس رو ببینید
114531

fakhravari
شنبه 07 دی 1392, 13:41 عصر
master/detail نمیتونید از ریلیشن این کار را کنید؟

ali_up1
شنبه 07 دی 1392, 14:21 عصر
master/detail نمیتونید از ریلیشن این کار را کنید؟

منظورتون چیه؟؟ یعنی error میده
من هر دو query رو اجرا کردم execution plan هم گرفتم از فقط سر در نمیارم از ازش
مشکل الان تونستن یا نتونستن نیس،من میخوام بدونم کدوم بهینه تره

حمیدرضاصادقیان
یک شنبه 08 دی 1392, 12:40 عصر
سلام.
رفتار این دو دستور هیچ تفاوتی باهم ندارند و مانند هم عمل میکنند و میتونید از هرکدوم که خواستید استفاده کنید.
ولی Join خواناتره.
همچنین در Inner Join شما چه شرط رو در ON مربوط به Inner Joinبنویسید چه در Where Clause بنویسید هیچ فرقی ندارند و برای کوتاهتر شدن میتونید Where رو نیز حذف کنید .