دستور Join در Sql
یکی از دستورات بسیار پرکاربرد و مهم دستور Join در Sql می باشد. دستور Join انواع مختلفی مانند inner join، Left join, Right join و … دارد که در اینجا هدف ما معرفی انواع دستورات Join نمی باشد بلکه آشنایی با دستور Join در Sql به صورت مفهومی می باشد. در واقع هدف این می باشد که شما بفهمید دقیقا چگونه باید چند جدول را با هم join کنید و کوئری های پیچیده بنویسید.
خب با ارائه مثال این کار را انجام می دهیم. در شکل زیر یک دیتابیس به نام foroosh داریم که لیست جداول آن را مشاهده می نمایید. جدولی به نام Customer وجود دارد که لیست مشتریان را درون خود نگهداری می کند و در سمت راست تصویر نیز یک select ساده از این جدول اجرا شده است.
همچنین جدولی در این دیتابیس به نام invoice وجود دارد که در این جدول لیست فاکتورهای ثبت شده موجود می باشد. در جدول Customer فیلد CustomerID کلید اصلی می باشد و در جدول Invoice نیز فیلد customerID کلید خارجی می باشد.
همانطور که می دانید در جداول Sql معمولا سعی می شود که به جای رشته ها از اعداد استفاده کنند به همین خاطر ما به جای ذخیره نام مشتری از آی دی آنها استفاده می کنیم. این کار چند مزیت دارد که مهمترین آنها کاهش حجم دیتابیس، افزایش سرعت اجرای کوئری ها در دیتابیس و جلوگیری از افزونگی داده (تکراری شدن داده ها) رخ می دهد.
حال فرض کنید از شما خواسته می شود که لیست فاکتورهایی که بین تاریخ ۱۳۹۵/۰۳/۰۱ الی ۱۳۹۵/۰۴/۱۰ می باشد را به همراه مشخصات کامل مشتری نمایش دهید.
خب به نحوه تحلیل این کوئری دقت نمایید !!!
مرحله اول : خروجی کار چیست؟ خروجی لیست فاکتورها می باشد. پس کوئری در اصل باید از جدول Invoice باشد.
Step 1 : Select * From Invoice
مرحله دوم : در صورت سوال گفته شده فاکتورها به همراه مشخصات کامل مشتری. مشخصات کامل مشتری در جدول customer می باشد. پس به نوعی به این جدول نیز نیاز می باشد. در اینجا باید دنبال یک فیلد مشترک بین جدول customer و invoice بود که این فیلد همان CustomerId می باشد. پس از طریق این فیلد می توانیم این دو جدول را join کنیم. نحوه Join کردن به صورت زیر می باشد :
Step 2 : Select * From Invoice I Join Customer C On I.CustomerID = C.CustomerID
دقت کنید که کلمه I یک نام مختصر (Alias) برای جدول Invoice و C نام مختصر برای Customer می باشد. و بعد از کلمه On نیز ستونهای مشترک را می نویسیم.
مرحله سوم : اعمال شرط ها. حال بایستی شرط هایی که خواسته شده را در کوئری اعمال کنیم. به صورت کلی این کوئری مانند تصویر زیر می باشد.
این حالت ساده ترین نمونه از استفاده از دستور Join در sql می باشد که البته اگر مفهوم را خوب درک کرده باشید برای حالات پیچیده تر نیز می توان دقیقا از همین الگو استفاده کرد.
خیلی ممنون واقعا ساده و روون توضیح دادین
خیلی عالی و ساده توضیح دادید. ممنون
واقعا دمت گرم بسیار جالب توضیح دادین