جوین کردن دادهها

میتوانید دادهها را جوین کنید تا دادهٔ فعلیتان را با یک جدول دیگر یا حتی با یک سؤال ذخیرهشده ترکیب کنید.
بعد از کلیک روی دکمهٔ "Join Data" برای اضافهکردن یک مرحلهٔ Join، باید دادهای را که میخواهید به آن جوین کنید انتخاب کنید (از همان پایگاهداده). فقط میتوانید جدولها و سؤالهای ذخیرهشدهای را انتخاب کنید که در همان پایگاهدادهٔ دادهٔ اولیه قرار دارند.

در مرحلهٔ بعد باید ستونهایی را که میخواهید روی آنها Join انجام شود انتخاب کنید. یعنی یک ستون از جدول اول و یک ستون از جدول دوم را انتخاب میکنید، و Join ردیفهایی را که مقدار ستون اول با مقدار ستون دوم برابر است بههم متصل میکند. یک مثال رایج، Join کردن دو جدول روی ستون ID است. اگر جدولی را انتخاب کنید که بین آن و جدول اولیه رابطهٔ Foreign key تعریف شده باشد، متابیس بهطور خودکار ستونهای ID متناظر را برایتان انتخاب میکند. در انتهای مرحلهٔ Join، دکمهای به نام "Columns" وجود دارد که با کلیک روی آن میتوانید مشخص کنید کدام ستونها از دادهٔ Joinشده در خروجی نمایش داده شوند.
بهصورت پیشفرض، متابیس Join از نوع Left outer انجام میدهد، اما میتوانید روی آیکون نمودار ون (Venn diagram) کلیک کنید و نوع Join را عوض کنید. همهٔ پایگاهدادهها از تمام انواع Join پشتیبانی نمیکنند، بنابراین متابیس فقط گزینههایی را که پایگاهدادهٔ شما پشتیبانی میکند نشان میدهد.
انواع اصلی Join عبارتاند از:
- Left outer join: همهٔ ردیفهای جدول A را بههمراه ردیفهای جدول B که شرط Join را برآورده میکنند (اگر وجود داشته باشند) برمیگرداند.
- Right outer join: همهٔ ردیفهای جدول B را بههمراه ردیفهای جدول A که شرط Join را برآورده میکنند (اگر وجود داشته باشند) برمیگرداند.
- Inner join: فقط ردیفهایی از جدول A و B را برمیگرداند که شرط Join در آنها برقرار است.
- Full outer join: همهٔ ردیفهای هر دو جدول را برمیگرداند، چه شرط Join برقرار باشد چه نباشد.
مثال Left outer join: اگر جدول A، Orders و جدول B، Customers باشد و Join را طوری تعریف کنید که ستون customer_id در جدول Orders برابر ستون ID در جدول Customers باشد، در یک Left outer join، خروجی فهرست کاملی از همهٔ سفارشها خواهد بود، و در هر ردیف سفارش، ستونهای مشتریِ ثبتکنندهٔ آن سفارش هم نمایش داده میشود. از آنجا که یک مشتری میتواند چندین سفارش داشته باشد، اطلاعات یک مشتری ممکن است چندبار در ردیفهای مختلف تکرار شود. اگر برای یک سفارش مشتری متناظری وجود نداشته باشد، اطلاعات سفارش نمایش داده میشود اما ستونهای مربوط به مشتری در آن ردیف خالی خواهند بود.
چند مرحله Join
در بسیاری از مواقع، ممکن است جدولهای A، B و C داشته باشید که بین A و B ارتباط وجود دارد و بین B و C هم ارتباط هست، اما بین A و C ارتباط مستقیمی تعریف نشده است. اگر بخواهید A را به B و بعد به C جوین کنید، کافی است چند مرحلهٔ Join اضافه کنید. روی "Join Data" کلیک کنید و جدول A را به B جوین کنید؛ سپس روی مرحلهٔ "Join Data" زیر همان بلاک Join کاملشده کلیک کنید تا مرحلهٔ Join دوم را اضافه کنید و نتیجهٔ Join قبلی را به جدول C جوین کنید.

Join روی چند شرط
Joinها میتوانند شامل چند شرط باشند تا نتایج دقیقتری بهدست آورید. متابیس این شرطها را با عملگر AND با هم ترکیب میکند.

Join با عملگرهای مختلف
میتوانید جدولها را بر اساس شرطهای مقایسهای زیر جوین کنید:
-
=(مساوی) -
≠(نامساوی) -
>(بزرگتر از) -
≥(بزرگتر یا مساوی) -
<(کوچکتر از) -
≤(کوچکتر یا مساوی)

Join با استفاده از عبارتهای سفارشی
گاهی میخواهید دادهها را بر اساس مقادیر ثابت، تاریخهای نسبی یا شرطهای سفارشی دیگر جوین کنید.
مثلاً فرض کنید جدولی از Reviewها دارید و میخواهید ستونی اضافه کنید که میانگین امتیاز همهٔ محصولات را نشان بدهد.
میتوانید ابتدا میانگین امتیاز را حساب کنید و سپس نتیجه را با جدول Reviewها روی شرط 1=1 جوین کنید.

برای استفاده از یک عبارت سفارشی بهعنوان کلید Join:
- روی یکی از کلیدهای Join کلیک کنید.
- گزینهٔ custom expression را انتخاب کنید.
- عبارت خود را (بههمراه یک مقدار ثابت مثل
1) وارد کنید. - روی Done کلیک کنید.
مثال دیگر: فرض کنید:
- جدولی به نام
customersدارید که نامها را در ستونهایfirst_nameوlast_nameنگه میدارد. - جدولی به نام
accountsدارید که نام و نام خانوادگی را در ستون واحدی به نامfull_nameذخیره میکند.
میتوانید این دو جدول را با یک عبارت سفارشی جوین کنید. کلید Join برای جدول customers شبیه این خواهد بود:
concat([first_name], " ", [last_name])
و کلید Join برای جدول accounts همان ستون full_name خواهد بود.
برای دیدن جزئیات بیشتر، نگاهی به فهرست عبارتها بیندازید.