عبارت inner join در SQL
عبارت 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 کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 26464
دیدگاهها
سلام.نام ستون مشترک بین جدول ها باید حتما یکی باشه؟
سلام، خیر در دستور Join نیاز نیست که نام ستون های مشترک یکسان باشه ...
پیشنهاد می شه هنگام Join کردن، از نام مستعار (As) در مقابل نام جداول استفاده کنید تا طول کوئری مان کوتاه تر شود.
شما برای جوین دادن بین دو جدول ابتدا تمام فیلدهای مورد نیاز از هر جدول را انتخاب کرده وبعد یک جدول را با جدول دیگر روی فیلد مشترکش جوین میکنید
حال من یک سوال دارم
اگر قرار باشد بیش از دو جدول را با هم جوین کنیم؛چطور ممکن است؟!
آیا باید دو جدول را ابتدا جوین کنیم و جواب را با جدول دیگر جوین کینم؛یعنی دوبه دو جوین بدهیم
نمیشود 3 جدول را همزمان با هم جوین کرد؟
سلام.
برای Join کردن تعداد مطرح نیست. فقط باید در JOINکردن جداول رو توسط فیلدهای داخل اون به هم ربط بدید.
سلام دراینجا ازON صحبتی نشده
درمثال بالا بعد ازکلمه ON نام ستون مشترک رامی اوریم برای ارتباط دوجدول
وهمچینن نوشتن INNER برای JOIN اختیاری است وهردو یک مفهوم رادارد.
خسته نباشید اگروقت داشتید و میتوانید بعضی مثالها برای کسی که اصلا کارنکرده کمی نامفهوم t لطفا خودتون بیشترتوضیح دهید
باتشکرازسایت خوبتون
خدا خیرت بده مارال جان
همین موضوع فکرم رو مشغول کرده بود توضیح شما رو که خوندم روشن که و فهمیدم چی به چیه
سلام، ممنون از توضیح تکمیلی تان...