آموزش رایگان صفر تا صد اسکیوال (SQL) به زبان ساده
-
آشنایی با SQL
-
آشنایی با دستورات SQL
-
دستور SELECT در SQL
-
دستور SQL SELECT DISTINCT
-
فیلتر کردن دادهها با WHERE در SQL
-
دستور ORDER BY در SQL
-
عملگر AND در SQL چیست؟
-
اپراتور OR در SQL
-
اپراتور NOT در SQL
-
دستور INSERT INTO در SQL
-
مقدار NULL در SQL
-
دستور UPDATE در SQL – بهروزرسانی اطلاعات جدول
-
دستور DELETE در SQL
-
مفهوم TOP، LIMIT، FETCH FIRST یا ROWNUM در SQL
-
توابع تجمیعی در SQL
-
معرفی توابع ()MIN و ()MAX در SQL
-
تابع COUNT() در SQL
-
تابع SUM() در SQL
-
تابع ()AVG در SQL
-
عملگر LIKE در SQL
-
استفاده از Wildcards در SQL
-
دستور IN در SQL
-
دستور BETWEEN در SQL
-
آشنایی با Aliases در SQL
-
مفهوم SQL JOIN
-
مفهوم INNER JOIN در SQL
مفهوم SQL JOIN
در SQL، دستور JOIN برای ترکیب دادهها از دو یا چند جدول مختلف استفاده میشود. این ترکیب بر اساس یک ستون مشترک بین جداول انجام میشود.
مثال از جدول “Orders” (سفارشها):
OrderID | CustomerID | OrderDate |
---|---|---|
10308 | 2 | 1996-09-18 |
10309 | 37 | 1996-09-19 |
10310 | 77 | 1996-09-20 |
مثال از جدول “Customers” (مشتریان):
CustomerID | CustomerName | ContactName | Country |
---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mexico |
در این دو جدول، ستون “CustomerID” در جدول “Orders” به ستون “CustomerID” در جدول “Customers” مرتبط است. این رابطه باعث میشود که بتوانیم دادههای مرتبط را از هر دو جدول به هم متصل کنیم.
نحوه استفاده از دستور JOIN
برای ترکیب دادهها از این دو جدول، از دستور JOIN استفاده میکنیم. این دستور میتواند اطلاعات هر دو جدول را بر اساس ستون مشترک “CustomerID” به هم متصل کند.
مثال عملی:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
در این دستور، ما از INNER JOIN استفاده کردهایم. این یعنی فقط رکوردهایی که در هر دو جدول مطابقت دارند، انتخاب میشوند.
خروجی دستور بالا به صورت زیر خواهد بود:
OrderID | CustomerName | OrderDate |
---|---|---|
10308 | Ana Trujillo Emparedados y helados | 9/18/1996 |
10365 | Antonio Moreno Taquería | 11/27/1996 |
10383 | Around the Horn | 12/16/1996 |
10355 | Around the Horn | 11/15/1996 |
10278 | Berglunds snabbköp | 8/12/1996 |
در این خروجی، رکوردهایی که “CustomerID” مشابه دارند از هر دو جدول به هم متصل شدهاند.
انواع مختلف JOIN در SQL
در SQL، انواع مختلف JOIN وجود دارند که هر کدام نحوه ترکیب دادهها را به شیوههای متفاوت انجام میدهند. در اینجا چند نوع از مهمترین آنها آورده شده است:
INNER JOIN
این نوع JOIN فقط رکوردهایی را برمیگرداند که در هر دو جدول دادههای مشابه دارند. در مثال قبلی، ما از این نوع JOIN استفاده کردیم.LEFT (OUTER) JOIN
این نوع JOIN تمام رکوردها را از جدول سمت چپ (جدول اول) برمیگرداند و فقط رکوردهای مشابه از جدول سمت راست (جدول دوم) را نشان میدهد. اگر در جدول سمت راست رکوردی نباشد، مقدار آن ستون NULL خواهد بود.
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
LEFT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
3. نوع RIGHT (OUTER) JOIN
مشابه LEFT JOIN است، با این تفاوت که تمام رکوردها را از جدول سمت راست (جدول دوم) برمیگرداند و رکوردهای مشابه از جدول سمت چپ را نشان میدهد.
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
RIGHT JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
4. نوع FULL (OUTER) JOIN
این نوع JOIN تمام رکوردها را از هر دو جدول برمیگرداند. اگر در یک جدول رکوردی مشابه نداشته باشد، ستونهای آن جدول NULL خواهند بود.
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
FULL OUTER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;




تمرین و چالش برای شما:
تمرین 1: سعی کنید یک دستور LEFT JOIN بنویسید که تمام سفارشها را به همراه نام مشتریان برگرداند. در صورتی که مشتریان سفارش نداشته باشند، نام آنها به صورت NULL نمایش داده شود.
تمرین 2: یک RIGHT JOIN بنویسید که تمام مشتریان و سفارشهای آنها را به نمایش بگذارد. در صورتی که مشتری سفارشی نداشته باشد، شماره سفارش NULL باشد.
نتیجهگیری
دستور JOIN به شما این امکان را میدهد که دادهها را از جداول مختلف بر اساس یک ستون مشترک ترکیب کنید. با استفاده از انواع مختلف JOIN میتوانید دادهها را به شیوههای مختلف و مطابق با نیاز خود نمایش دهید.