سلف جوین (Self Join)
«سلف جوین (Self Join)» یعنی یک جدول را با خودش جوین کنیم. بنابراین دو نام مستعار می دهیم و سپس ردیف های مرتبط را کنار هم می آوریم.
سلف جوین چیست؟
سلف جوین یک «جوین (Join)» معمولی است. اما طرفین جوین یکسان اند. با نام مستعار، دو نسخه مجازی از همان جدول می سازیم.
سینتکس Self Join
در این الگو، T1 و T2 نام های مستعار جدول هستند. سپس شرط ارتباط را در WHERE می نویسیم.
SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;
مثال: مشتری های هم شهر
در این مثال، نام دو مشتری هم شهر را کنار هم می آوریم. بنابراین مشتری های یک شهر، دو به دو کنار هم دیده می شوند.
SELECT A.CustomerName AS CustomerName1,
B.CustomerName AS CustomerName2,
A.City
FROM Customers A,
Customers B
WHERE A.CustomerID <> B.CustomerID
AND A.City = B.City
ORDER BY A.City;
گام های تمرینی سریع
- کوئری مثال را اجرا کن و خروجی را ببین.
- شرط شهر را تغییر بده و نتیجه را مقایسه کن.
- ORDER BY را حذف کن و ترتیب را بررسی کن.
نکته: برای مرور تفاوت ها، صفحه جوین ها (Joins) را ببین. سپس اینر جوین و لفت جوین را مقایسه کن تا تصویر کامل شود.
جمع بندی سریع
- سلف جوین، جوین روی همان جدول است.
- از نام مستعار برای دو نسخه استفاده کن.
- شرط برابری، ردیف های مرتبط را جفت می کند.
- خروجی ممکن است تکراری به نظر برسد.