مدل های JOIN

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Oct 24, 2020

نامهای سفارشی

از نام های سفارشی می توان برای جداول نیز استفاده کرد. با دادن "نام مستعار" به جداول می توانید دستورات join را کوتاه کنید:

SELECT ct.ID, ct.Name, ord.Name, ord.Amount
FROM customers AS ct, orders AS ord
WHERE ct.ID=ord.Customer_ID
ORDER BY ct.ID;

نکته: همانطور که مشاهده می کنید ، ما نام جدول را کوتاه کردیم همانطور که از آن در درخواست خود استفاده کردیم.

انواع عضویت

در زیر انواع JOIN قابل استفاده در MySQL آورده شده است:

  •  INNER JOIN
  • LEFT JOIN
  •  RIGHT JOIN

 INNER JOIN

INNER JOIN معادل JOIN است. هنگامی که بین جدول ها مطابقت دارد ردیف ها را برمی گرداند.

SELECT column_name(s)
FROM table1 INNER JOIN table2 
ON table1.column_name=table2.column_name;


نکته: برای تعیین شرایط اتصال داخلی به کلمه کلیدی ON توجه کنید.

تصویر زیر نحوه کار INNER JOIN را نشان می دهد:

نکته: فقط سوابق مطابق با شرایط پیوستن برگردانده می شوند.

 

LEFT JOIN

LEFT JOIN تمام ردیف ها را از جدول سمت چپ برمی گرداند ، حتی اگر در جدول سمت راست مطابقت نداشته باشد.

این بدان معناست که اگر در جدول سمت راست مطابقت با بند ON وجود نداشته باشد ، join همچنان ردیف های جدول اول را در نتیجه برمی گرداند.

نحو اصلی LEFT JOIN به شرح زیر است:

SELECT table1.column1, table2.column2...
FROM table1 LEFT OUTER JOIN table2
ON table1.column_name = table2.column_name;

نکته: کلمه کلیدی OUTER اختیاری است و می توان آن را حذف کرد.

تصویر زیر نحوه کار با LEFT JOIN را نشان می دهد:

جداول زیر را در نظر بگیرید.
مشتریان:

آیتم ها: 

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

SELECT customers.Name, items.Name 
FROM customers LEFT OUTER JOIN items 
ON customers.ID=items.Seller_id;

خروجی:

مجموعه نتایج شامل همه ردیف های جدول سمت چپ و داده های منطبق از جدول سمت راست است.
نکته: اگر برای یک ردیف خاص مطابقت پیدا نشود ، NULL بازگردانده می شود.

RIGHT JOIN

RIGHT JOIN همه ردیف ها را از جدول سمت راست برمی گرداند ، حتی اگر در جدول سمت چپ مطابقت نداشته باشد.

syntax اصلی RIGHT JOIN به شرح زیر است:

SELECT table1.column1, table2.column2...
FROM table1 RIGHT OUTER JOIN table2
ON table1.column_name = table2.column_name;

نکته: باز هم ، کلمه کلیدی OUTER اختیاری است و می توان آن را حذف کرد.

همان مثال قبلی ما را در نظر بگیرید ، اما این بار با یک RIGHT JOIN:

SELECT customers.Name, items.Name FROM customers
RIGHT JOIN items ON customers.ID=items.Seller_id;

خروجی:

RIGHT JOIN تمام ردیف ها را از جدول سمت راست (موارد) برمی گرداند ، حتی اگر در جدول سمت چپ مطابقت نداشته باشد (مشتریان).
نکته: انواع دیگری از پیوستن به زبان SQL وجود دارد ، اما توسط MySQL پشتیبانی نمی شود.

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
0دیدگاه