عبارت INNER JOIN
عبارت کلیدی INNER JOIN سطرهایی را برمی گرداند که در هر دو جدول حداقل یک داده متناظر در ستون های مرتبط شده داشته باشد.
فرم عبارت INNER JOIN:
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
مثال:
جدول Persons:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
جدول Orders:
O_Id | OrderNo | P_Id |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 1 |
4 | 24562 | 1 |
5 | 34764 | 15 |
می خواهیم تمامی افراد را به همراه سقارشاتشان لیست کنیم.
از دستور زیر استفاده می کنیم:
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
ORDER BY Persons.LastName
نتیجه به شکل زیر خواهد بود:
LastName | FirstName | OrderNo |
---|---|---|
Hansen | Ola | 22456 |
Hansen | Ola | 24562 |
Pettersen | Kari | 77895 |
Pettersen | Kari | 44678 |
عبارت کلیدی INNER JOIN سطرهایی که حداقل یک تناظر در دو جدول داشته باشد را برمی گرداند. اگر فردی در جدول Persons وجود دارد که تناظری در جدول Orders ندارد،آن فرد لیست نمی شود.
برای مشاهده فیلم های آموزشی مقدماتی تا پیشرفته پایگاه داده SQLServer کلیک کنید.
پیشنهاد می شه هنگام Join کردن، از نام مستعار (As) در مقابل نام جداول استفاده کنید تا طول کوئری مان کوتاه تر شود.
حال من یک سوال دارم
اگر قرار باشد بیش از دو جدول را با هم جوین کنیم؛چطور ممکن است؟!
آیا باید دو جدول را ابتدا جوین کنیم و جواب را با جدول دیگر جوین کینم؛یعنی دوبه دو جوین بدهیم
نمیشود 3 جدول را همزمان با هم جوین کرد؟
برای Join کردن تعداد مطرح نیست. فقط باید در JOINکردن جداول رو توسط فیلدهای داخل اون به هم ربط بدید.
درمثال بالا بعد ازکلمه ON نام ستون مشترک رامی اوریم برای ارتباط دوجدول
وهمچینن نوشتن INNER برای JOIN اختیاری است وهردو یک مفهوم رادارد.
خسته نباشید اگروقت داشتید و میتوانید بعضی مثالها برای کسی که اصلا کارنکرده کمی نامفهوم t لطفا خودتون بیشترتوضیح دهید
باتشکرازسایت خوبتون
همین موضوع فکرم رو مشغول کرده بود توضیح شما رو که خوندم روشن که و فهمیدم چی به چیه