PostgreSQL

PostgreSQL — جوین کامل (FULL JOIN)

آخرین بروزرسانی: 1404/08/18

جوین کامل (FULL JOIN)

جوین کامل (FULL JOIN) همه ردیف های دو جدول را برمی گرداند. اگر تطابق باشد، داده هر دو جدول می آید. اگر نباشد، سمت مقابل NULL می شود. مثل حضور و غیاب دو کلاس؛ اسم همه می آید، حتی بی جفت ها.

تعریف ساده FULL JOIN

FULL JOIN یعنی «همه چپ + همه راست». «تطابق (Match)» یعنی برابری ستون های مرتبط؛ معمولاً «کلید خارجی (Foreign Key)». این جوین برای گزارش کامل دو طرف کاربردی است.

مثال از منبع

اتصال testproducts و categories با ستون category_id. ردیف های بی تطابق، در طرف مقابل NULL می گیرند.

SELECT testproduct_id, product_name, category_name
FROM testproducts
FULL JOIN categories ON testproducts.category_id = categories.category_id;

مشاهده در ادیتور

نکات مهم FULL JOIN

  • FULL JOIN با FULL OUTER JOIN برابر است.
  • ردیف های بی تطابق حذف نمی شوند؛ طرف مقابل NULL است.
  • ایندکس روی ستون های جوین، سرعت را بهتر می کند.

گام های سریع تمرین

  1. ستون مشترک را مشخص کن؛ مثلاً category_id.
  2. کوئری FULL JOIN را بساز و اجرا کن.
  3. ردیف های NULL را پیدا کن و تحلیل کن.

نکته: اگر فقط همه «چپ» را می خواهی، از LEFT JOIN استفاده کن. اگر فقط همه «راست» را می خواهی، RIGHT JOIN مناسب است. مرور کلی را در جوین ها ببین.

جمع بندی سریع

  • جوین کامل همه ردیف ها را می آورد.
  • بی تطابق ها با NULL پر می شوند.
  • FULL OUTER نوشتن اختیاری است.
  • ایندکس خوب، کار را سریع می کند.