آموزش SQL Server
آموزش SQL Server ۷: اتصال جدولها با JOIN

JOIN در SQL Server دادههای مرتبط را از چند جدول ترکیب میکند. معمولاً اتصال بر اساس کلید اصلی و کلید خارجی انجام میشود؛ شرط اتصال را همیشه صریح بنویسید.
INNER JOIN
1 2 3 4 | SELECT s.FullName, e.CourseName FROM dbo.Students AS s INNER JOIN dbo.Enrollments AS e ON e.StudentID = s.StudentID; |
INNER JOIN فقط ردیفهای دارای تطابق در هر دو طرف را برمیگرداند.
LEFT JOIN
1 2 3 4 | SELECT s.FullName, e.CourseName FROM dbo.Students AS s LEFT JOIN dbo.Enrollments AS e ON e.StudentID = s.StudentID; |
LEFT JOIN همه ردیفهای جدول سمت چپ را نگه میدارد؛ اگر تطابقی نباشد ستونهای سمت راست NULL میشوند. RIGHT JOIN همین منطق را از سمت راست و FULL OUTER JOIN ردیفهای هر دو طرف را نگه میدارد.
اشتباهات رایج
- فراموش کردن شرط ON که میتواند حاصلضرب کارتزین بسازد.
- اتصال ستونهایی با نوع داده یا معنای متفاوت.
- استفاده از WHERE روی ستون جدول سمت راست پس از LEFT JOIN، به شکلی که نتیجه عملاً INNER JOIN شود.
پس از یادگیری JOIN، سراغ Subquery و CTE بروید و برای خلاصهسازی خروجی از GROUP BY استفاده کنید.

