سلام
پيشنهاد به آقا فرهاد:
برايJoin كردن اگه Left Join ، Right Join , Inner Join رو هم بگيد خوبه
سلام
پيشنهاد به آقا فرهاد:
برايJoin كردن اگه Left Join ، Right Join , Inner Join رو هم بگيد خوبه
سلامنوشته شده توسط DrXoX [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
همونطور که DrXoX عزیز هم گفته، JOIN در sql موارد INNER JOIN , LEFT JOIN , RIGHT JOIN رو داره که توضیح میدم:
شکل کلی دستور در INNER JOIN :
شکل کلی دستور در LEFT JOIN :کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
شکل کلی دستور در RIGHT JOIN :کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مثال برای Inner Join :کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تفاوت inner , left , right :کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در Inner join تمام رکوردهای دو جدول، هر جا که شرط مطابقت داشته باشه نمایش داده میشه و اگر در جدول اول رکوردی وجود داشته باشه که با هیچ رکوردی از جدول دوم مطابقت نداشته باشه، در نتیجه نهایی نمایش داده نمیشه.
در Left join تمام رکوردها از جدول اول نمایش داده میشه، حتی اگر با هیچ رکوردی از جدول دوم مطابقت نداشته باشه.
Right join برعکس left join عمل میکنه و تمام رکوردهای جدول دوم رو نمایش میده، حتی اگر با هم مطابقت نداشته باشند.
با روش آزمون و خطا و مثالهای مختلف میتونین دقیقا متوجه شین که کار این دستورات چی هست.
پیروز باشید
دستت درد نكنه خيلي عالي بود
دوست عزیز.
من متوجه نشدم.
چرا یاید از Left Join یا Right Join استفاده کرد.
چون اینجوری که انگار فقط یکی از تیبلها رو فراخوانی کردیم و اونوفق Join کجاست ؟
با اجازه استادنوشته شده توسط مرد مباح [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
هنگامي از inner join استفاده مي کنيم که کليد در هر دو جدول مقدار داشته باشد و فقط در اين صورت رکوردهاي متناظر با هم Join مي شوند اما در Left Join يا Right Join يکي از جدولهاي چپ يا راست فقط کافي است حاوي شرط تلفيق باشد (خيلي خلاصه گفتم)
با تشکر از MasterData عزیز.
با مثال توضیح میدم:
زمانی که از inner join استفاده میشه تمام رکوردهایی لیست میشه که با شرط ما مطابقت داشته باشه. یعنی در جدول orders کالایی سفارش داده شده که در جدول inventory موجود هست.
اگر از left join استفاده کنیم علاوه بر لیست شدن رکوردهایی که با شرط مطابقت دارند، بقیه رکوردهای جدول اول هم در نتیجه نهایی هست. یعنی کالاهایی که کسی اونها رو سفارش نداده.
و در صورتی که از right join استفاده کنیم، باز هم علاوه بر لیست شدن رکوردهایی که با شرط مطابقت دارند، بقیه رکوردهای جدول دوم هم در نتیجه نهایی هست. یعنی سفارشاتی که کالای مورد سفارش در جدول inventory معرفی نشده.
پیروز باشید
مثال فرهاد جان کاملا درسته
برای درک بهتر مطلب شکل زیر فکر کنم خوب باشه
DrXoX عزیز مثال خیلی خوبی هست و برای درک کامل مطلب کمک زیادی میکنه.
مر30 به خاطر همکاری دوستان عزیز
یکی دیگه از توابعی که میتونه مفید باشه IS NULL هست.
این تابع زمانی کاربرد داره که شما میخوای تمام فیلدهای null (خالی) رو پیدا کنی.
شکل کلی دستور:
کد زیر تمام رکوردهایی رو برمیگردونه که فیلد name اونها خالی هست:کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
توجه کنید که null با space (" ") تفاوت داره.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر خواستید رکوردهای پر شده رو پیدا کنید، دستور رو به صورت زیر تغییر بدید:
پیروز باشیدکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
دوستان.
من نتوستم فرق "" با Null رو پیدا کنم ولی در بعضی مسائل تفاوت دارند.
میشه لطفا توضیح بدید ؟
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)