آموزش استفاده از JOIN در SQL

مقدمه

در بسیاری از طراحی‌های پایگاه داده، اطلاعات بر اساس ارتباط بین داده‌ها در جدول‌های مختلف ذخیره می‌شوند. با این حال، اغلب نیاز پیش می‌آید که اطلاعات از چند جدول به‌صورت همزمان استخراج شوند.

یکی از روش‌های رایج برای این کار، استفاده از دستور JOIN در SQL است. JOIN با ترکیب جدول‌ها، ردیف‌هایی را که به هم مرتبط هستند (معمولاً از طریق کلید خارجی و کلید اصلی) کنار هم قرار می‌دهد.

در این راهنما یاد می‌گیرید:

  • چگونه کوئری‌های JOIN بنویسید
  • انواع JOIN چیست
  • چطور داده‌ها از چند جدول ترکیب می‌شوند
  • و چگونه با alias نوشتن کوئری را ساده‌تر کنید

پیش‌نیازها

برای انجام این آموزش نیاز دارید:

  • یک سیستم مدیریت پایگاه داده رابطه‌ای (مثل MySQL)
  • یک دیتابیس با چند جدول نمونه

ایجاد دیتابیس و جداول نمونه

ساخت دیتابیس:

CREATE DATABASE joinsDB;
USE joinsDB;

جدول محصولات:

CREATE TABLE products (
  productID int UNIQUE,
  productName varchar(20),
  price decimal (4,2),
  PRIMARY KEY (productID)
);

جدول تیم فروش:

CREATE TABLE team (
  empID int UNIQUE,
  empName varchar(20),
  productSpecialty int,
  PRIMARY KEY (empID),
  FOREIGN KEY (productSpecialty) REFERENCES products (productID)
);

جدول فروش:

CREATE TABLE sales (
  saleID int UNIQUE,
  quantity int,
  productID int,
  salesperson int,
  PRIMARY KEY (saleID),
  FOREIGN KEY (productID) REFERENCES products (productID),
  FOREIGN KEY (salesperson) REFERENCES team (empID)
);

مفهوم JOIN در SQL

ساختار کلی:

SELECT table1.column1, table2.column2
FROM table1
JOIN table2
ON condition;

JOIN ردیف‌هایی را از دو جدول ترکیب می‌کند که شرط ON برای آن‌ها برقرار باشد.


مثال JOIN ساده

SELECT team.empName, products.productName, products.price
FROM products
JOIN team
ON products.productID = team.productSpecialty;

👉 این کوئری:

  • نام کارمند
  • نام محصول تخصصی او
  • قیمت محصول

را نمایش می‌دهد.


استفاده از USING

اگر نام ستون‌ها یکسان باشد:

SELECT sales.saleID, sales.quantity, products.productName, products.price
FROM sales
JOIN products
USING (productID);

JOIN چند جدول

SELECT sales.saleID,
team.empName,
products.productName,
(sales.quantity * products.price)
FROM products
JOIN sales USING (productID)
JOIN team ON team.productSpecialty = sales.productID
WHERE team.empID = sales.salesperson;

👉 این کوئری درآمد فروش را محاسبه می‌کند.


انواع JOIN

1. INNER JOIN

فقط داده‌های مشترک:

SELECT ...
FROM sales
JOIN team
ON sales.salesperson = team.empID;

2. LEFT JOIN

همه داده‌های جدول چپ + داده‌های مشترک:

SELECT ...
FROM sales
LEFT JOIN team
ON sales.salesperson = team.empID;

3. RIGHT JOIN

همه داده‌های جدول راست + داده‌های مشترک:

SELECT ...
FROM sales
RIGHT JOIN team
ON sales.salesperson = team.empID;

4. FULL JOIN

همه داده‌های هر دو جدول (در MySQL پشتیبانی نمی‌شود)


استفاده از Alias (نام مستعار)

برای ساده‌تر شدن کوئری:

SELECT S.saleID, S.quantity,
P.productName,
(P.price * S.quantity) AS revenue
FROM sales AS S
JOIN products AS P
USING (productID);

جمع‌بندی

در این آموزش یاد گرفتید:

  • JOIN چیست و چگونه کار می‌کند
  • تفاوت انواع JOIN
  • نحوه ترکیب چند جدول
  • استفاده از alias برای خوانایی بهتر

 

 

از همراهی شما با پارمین کلود سپاسگزاریم.

Click to rate this post!
[Total: 0 Average: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *