اینر جوین (Inner Join)
«اینر جوین (INNER JOIN)» فقط ردیف هایی را برمی گرداند که در هر دو جدول، مقدارِ مرتبط دارند. مثل چسباندن «محصول» به «دسته بندی» با کلید CategoryID.
اینر جوین چیست؟
اینر جوین رکوردهای مشترک را می آورد. یعنی فقط وقتی هر دو طرف تطبیق دارند. پس رکوردهای بی همتا حذف می شوند و نتیجه تمیزتر می شود.
SELECT ProductID, ProductName, CategoryName
FROM Products
INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID;
سینتکس INNER JOIN
الگوی کلی را ببین. همیشه شرط اتصال را با ON بنویس.
SELECT column_name(s)
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;
نام گذاری کامل ستون ها
وقتی نام ستون در هر دو جدول تکرار می شود، نام جدول را هم بنویس.
SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Products
INNER JOIN Categories ON Products.CategoryID = Categories.CategoryID;
JOIN یا INNER JOIN؟
نتیجه یکسان است. JOIN به صورت پیش فرض INNER است.
SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Products
JOIN Categories ON Products.CategoryID = Categories.CategoryID;
جوین سه جدول
سفارش، مشتری، و شرکت حمل را با هم ترکیب کن.
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
);
نکته: اگر CategoryID در یکی از جدول ها خالی باشد، اینر جوین آن ردیف را نمی آورد. برای مرور کلی به جوین ها (Joins) برو. برای گسترش به لِفت جوین سر بزن. همچنین از نام مستعار (Aliases) برای کوتاه کردن نام ها استفاده کن. این متن روی کلمه کلیدی اینر جوین بهینه شده است.
گام های تمرینی سریع
- INNER JOIN محصولات و دسته ها را اجرا کن.
- ستون های خروجی را تغییر بده و دوباره تست کن.
- یک جوین سه جدولی با Shippers بساز.
جمع بندی سریع
- اینر جوین فقط رکوردهای مشترک را می دهد.
- JOIN و INNER JOIN برابر هستند.
- نام جدول را کنار ستون های مشترک بنویس.
- برای نتیجه کامل تر از LEFT/RIGHT استفاده کن.