خانه / آموزش Microsoft BI / درس ۱۶ – استفاده از دستور JOIN

درس ۱۶ – استفاده از دستور JOIN

دستورات مرتبط با JOIN در SQL Server :

مهم ترین دستور در SQL ، دستورات مرتبط با Join هستند ، اینکه بتوانیم اطلاعات را از جدول های دیگر بیاوریم و با اطلاعات جدول های دیگری ترکیب کنیم ، بسیار پر کاربرد و ارزشمند است.

در ابتدا بهتر است شماتیک و مفهوم Join را یاد بگیریم :

عکس 2:03

فرض کنید یک جدول به نام جدول ناشرین و یک جدول به نام جدول کتاب ها داریم. رابطه این دو جدول ، یک به چند است یعنی یک ناشر میتواند چندین کتاب را منتشر کرده باشد.

حالات Join مختلفی که در عکس بالا میبینید ، در تصویر به شکل زیر پیاده سازی میشوند :

عکس 24:40

نحوه نوشتن کوئری Join در سیکوئل سرور به شکل زیر است :

عکس 30:00

در کوئری Join اگر میخواهید یک ستونی بیارید که اسمش در هر دو جدول مشترک هست ، بایدمشخص کنید که قصد دارید آن ستون را از کدام جدول لود کنید.

نوشتن کوئری Join ، تنها مختص دو جدول نیست و میتوانید تعداد بیشتری جدول را با هم Join بزنید. ، برای مثال در کوئری زیر ابتدا DimCustomers را با FactInternetSales ،  Left Join زده سپس سپس حاصل آن را با جدول Dim Product  جوین میزنیم تا نام و ID کالاهای خریداری شده را نیز داشته باشیم.

عکس 39:25

در قسمت ON در کوئری Join ، ممکن است جدول ها را روی بیش از یک ستون با یکدیگر Join بزنیم ، این حالت بستگی به نیاز ما دارد و ضمنا خیلی معمول نیست و به ندرت پیش میاید که نیاز شود دو جدول را روی بیش از یک ستون با یکدیگر Join بزنیم.

نوشتن Join به تنهایی در کوئری هم ارز با همان Inner Join است.

یک مدل Join داریم که Self Join نامیده میشود و معادل این است که یک جدول را با خودش Join بزنیم.

یک جدول که شامل اطلاعات افراد و شهر محل سکونت آنهاست را در نظر بگیرید ، SelfJoin زدن در این جدول به ما کمک میکند تا افرادی که با یکدیگر در یک شهر زندگی میکنند را پیدا کنیم.

برای مثال کوئری زیر را در نظر بگیرید :

SELECT A.CustomerName AS CN1 , B.CustomerName AS CN2 , A.City

FROM Customers AS A , Customers AS B

WHERE A.CustomerID != B.CustomerID AND A.City = B.City

ORDER BY A.CITY

عکس 1:03:12

به طور کلی میتوان گفت Self Join  یک نوع ضرب دکارتی است و جدول ی که از Self Join حاصل می شود ، تعداد سطر هایش مجذور تعداد سطر جدول اولیه می باشد.

* هر چه تعداد Join های داخل کوئری کمتر باشد سرعت اجرای کوئری بیشتر است.
ضمنا توجه کنید که بهتر است یک View را با سایر Object های ممکن ، Join نزنید.

درباره‌ی حمیدرضا بابازاده

تحلیلگر ارشد و متخصص هوش تجاری در اتریش هستم و تجربه کار بعنوان مشاور و مدرس BI در شرکتهای مختلف رو دارم . بیش از 1300 ساعت سابقه تدریس دوره های Python , Power BI و Microsoft BI را در آموزشگاه سماتک و مجتمع فنی تهران دارم .

همچنین ببینید

Deploy کردن Tabular Data Model

درس ۳۰ – Deploy کردن Tabular Data Model

Deploy کردن Tabular Data Model فرض کنید طراحی دیتا مدل به اتمام رسید. حال میخواهیم …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

معادله امنیتی (فقط عدد بنویسید) *