
دستور SELF JOIN در SQL
دستور self join در SQL زیر مجموعه دستورات Join هست ، از این دستور برای ارتباط دادن یک جدول با خودش استفاده می کنیم.
نحوه استفاده از دستور SELF JOIN
SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;
در دستورات بالا T1 و T2 نام های مستعار ( alias ) برای همان جدول table1
می باشد.
نمونه جدول بانک اطلاعاتی
به عنوان مثال ما قصد داریم جدول "Customers"
را که در اینجا لیست کرده ایم تعدادی از مقادیر رکورد های آن را با دستور SELF JOIN
مقایسه کنیم.
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
مثال برای دستور SELF JOIN در SQL
دستورات SQL زیر رکورد هایی را که مقدار ستون city
آنها باهم برابر بوده و CustomerID
آنها باهم متفاوت هست را بر می گرداند.
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;
نمونه خروجی دستورات بالا:
CustomerName1 | CustomerName2 | City |
---|---|---|
Matin Boronsi | Arman Ahmadi | Mashhad |
Reza Jafari | Amir Hosein Sarajian | Mashhad |
Abbas Bo azar | Mohammad Reza Aghaee | Shiraz |
Hamed Taheri | Ahmad Mosadegh | Isfahan |
Ali Mohammadi Nejad | Hosein Mirzaee | Isfahan |
Akbar Moradi | Ghasem Hasani | Tehran |
توجه: دقت داشته باشید که برای درک بهتر دستورات SQL حتماً کد های ذکر شده را برروی جداول خود تست کنید.
آیا این مطلب برای شما مفید بود ؟
دو چيز ناپايدار
و درود خدا بر او، فرمود: سزاوار نيست كه بنده خدا به دو خصلت اعتماد كنند: تندرستى، و توانگرى، زيرا در تندرستى ناگاه او را بيمار بينى، و در توانگرى ناگاه او را تهيدست.
حکمت 426 نهج البلاغه