JOIN (JOIN)
در SQL، «جوین JOIN» یعنی چسباندن جدول ها با کلید مشترک. «کلید مشترک» ستونی است که در هر دو جدول وجود دارد. با JOIN می توانیم داده های مرتبط را کنار هم ببینیم؛ مثل لیست سفارش با نام مشتری.
INNER JOIN: فقط رکوردهای مشترک
«اینر جوین INNER JOIN» فقط سطرهایی را می آورد که در هر دو جدول، تطابق دارند. اگر سفارشی مشتری نداشت، نمایش داده نمی شود.
مثال: سفارش ها با نام مشتری
SELECT Orders.OrderID, Customers.CustomerName;
FROM Orders;
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
نکته: INNER JOIN فقط سطرهای دارای تطابق را نشان می دهد.
مثال: سه جدول با دو INNER JOIN
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName;
FROM Orders;
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID;
LEFT JOIN: همه چپ + تطابق های راست
«لفت جوین LEFT JOIN» همه رکوردهای جدول چپ را می آورد. اگر در جدول راست تطابقی نبود، ستون های راست NULL می شوند.
مثال: همه مشتری ها با سفارش های احتمالی
SELECT Customers.CustomerName, Orders.OrderID;
FROM Customers;
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
ORDER BY Customers.CustomerName;
RIGHT JOIN: همه راست + تطابق های چپ
«رایت جوین RIGHT JOIN» همه رکوردهای جدول راست را برمی گرداند. اگر در جدول چپ تطابقی نبود، ستون های چپ NULL می شوند.
مثال: همه کارمندها با سفارش های احتمالی
SELECT Orders.OrderID, Employees.LastName, Employees.FirstName;
FROM Orders;
RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID;
ORDER BY Orders.OrderID;
FULL OUTER JOIN: همه رکوردها از هر دو طرف
«فول اوتر جوین FULL OUTER JOIN» همه سطرهای هر دو جدول را می آورد. جایی که تطابق نیست، طرف مقابل NULL می شود.
مثال: همه مشتری ها و همه سفارش ها
SELECT Customers.CustomerName, Orders.OrderID;
FROM Customers;
FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
ORDER BY Customers.CustomerName;
گام های عملی
- جدول ها و کلید مشترک را مشخص کن.
- نوع JOIN را بر اساس نیاز انتخاب کن.
- شرط ON را دقیق بنویس و نتیجه را بررسی کن.
لینک های مرتبط در سایت
JOIN در SQL | LEFT JOIN | مقدار تهی IS NULL
جمع بندی سریع
- INNER: فقط تطابق ها را می آورد.
- LEFT: همه چپ + تطابق های راست.
- RIGHT: همه راست + تطابق های چپ.
- FULL: همه رکوردها از هر دو طرف.