دستور join در SQL
با نام و یاد خداوند. سلام خدمت کاربران گرامی
در جلسه قبل با دستور case در sql آشنا شدیم. در این جلسه قصد داریم شما را با دستور join در SQL آشنا کنیم .
با استفاده از دستور join در SQL می توانیم ارتباط بین جداول را برقرار کنیم .
دو تا جدول به نام های Student و Course داشتیم . ابتدا با استفاده از دستور select اطلاعات جداول خود را مشاهده می کنیم:
select *
from Student
خروجی جدول student:
select *
from Course
خروجی جدول Course:
ما در اینجا می خواهیم join را بین دو جدول Course و student برقرار کنیم تا بتوانیم اطلاعات را از دو جدول استخراج کنیم .
برای پیوند دادن دو جدول باید فیلدی به عنوان فیلد رابط وجو د داشته باشد که دارای حداقل یک داده متناظر در ستون های مرتبط باشد. که بهترین انتخاب فیلد FOREIGN KEY (کلید خارجی) که اشاره به فیلدPRIMARY KEY (کلید اصلی) دارد می باشد .
قبل از این که دستور join در SQL را پیاده سازی کنیم به این نکته توجه داشته باشید . که با استفاده ازدستور Join و دستور InnerJoin می توانیم پیوند بین دو جدول را برقرار کنیم نتیجه اجرای هر دوی آنها هم یکسان است، اما دستور InnerJoin دارای کارایی بالاتری می باشد و به همین دلیل پیشنهاد می کنیم که از دستور InnerJoin استفاده کنید .
پیاده سازی دستور join
Query زیر را اجرا می کنیم:
select *
from Student inner join Course
on student.id=Course.ID_FK_Student
کلمه ی کلیدی on فیلد رابطه را در دو جدول مشخص می کند.
برای انتخاب فیلد رابطه ،باید از فیلدی استفاده می شد که مقادیر آن در هر دو جدول یکسان باشد به همین دلیل از جدول student فیلد id و از جدول Course فیلد ID_FK_Student استفاده کردیم .
خروجی Query دستور inner join را با هم مشاهده می کنیم :
اینبار همین Query را با استفاده از دستور join اجرا می کنیم:
select *
from Student join Course
on student.id=Course.ID_FK_Student
خروجی Query دستور join را با هم مشاهده می کنیم :
مشاهده می کنیم که خروجی هر دو دستور یکسان می باشد.
اگر شرطی هم داشته باشیم می توانیم بعد از پایان این دستورات شرط را قرار دهیم .
برای مثال فقط مشخصات فردی که id آن 1030 است را نمایش دهد ؟
select *
from Student join Course
on student.id=Course.ID_FK_Student
where id=1030
خروجی را با هم مشاهده می کنیم .
مشاهده می کنیم که پیغام خطا می دهد این پیغام به این دلیل است که در هر دو جدول چنین فیلدی وجود دارد . پس برای رفع این مشکل باید نام جدول را قبل از نوشتن فیلد قید کنیم .
select *
from Student join Course
on student.id=Course.ID_FK_Student
where student.id=1030
خروجی را با هم مشاهده می کنیم .
در این جلسه با دستور join در SQL آشنا شدیم ، در جلسه بعد قصد داریم تا شما را با دستور left join و right join آشنا کنیم .
با آموزش مبانی SQL Server در خدمت شما هستیم. لطفا سوالات ، نظرات و پیشنهادات خود را در قسمت دیدگاه ها با ما در میان بگذارید.
به این مقاله چند تا ستاره میدی؟[تعداد رای: 16 امتیاز: 3.6]
مطالب بسیار روان و عالی
جالبه ک sexرو هم در پایگاه داده قرار دادین
مگ داشتن این اطلاعات هم لازمه؟؟؟
سلام و عرض ادب
برای مثالی که زده شد فیلدهای مختلفی در نظرگرفته شده که یکی از آن ها فیلد sex برای مشخص کردن جنسیت افراد می باشد.
با تشکر از همراهی شما
مرسی بابت مطالب
بسیار عالی و کاربردی
در جدول course ، دانشجویی با id 1034 وجود نداره
ولی در خروجی جوین مشاهده میشه
سلام به همه
توی sql یه کوئری جوین inner join واسه ارتباط چندتا جدول نوشتیم. حالا چجوری توی زبانی مثل سی شارپ از این کوئری استفاده کنیم؟
من داده ای که ای دی ۱۰ ۳۱ داشت رو متوجه نمیشم چرا از ینفر سه بار میاد ولی از ینفر باهمون ای دی بکبار می اید
: ) همه چیز اینجا درسته فقط نمیدونم چرا تو سیستم ما اررور میده : )
ممنون از آموزشتون