Day5 PSQL با استفاده از پرس و جو پیوستن

انواع پیوستن در postgresql
-
پیوستن به داخل
فقط ردیف هایی را که در هر دو جدول مقادیر مطابقت دارند ، برمی گرداند.
نحو:
Table1.Column1 ، Table2.Column2 را انتخاب کنید
از جدول 1
inner join table2 در جدول 1.common_column = table2.common_column ؛
مثال:
SELECT employees.id, employees.name, departments.name AS department
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;
-
پیوستن به سمت چپ (پیوستن به سمت چپ)
تمام ردیف ها را از جدول سمت چپ و ردیف های مطابقت از جدول سمت راست برمی گرداند. در صورت عدم تطابق ، برای ستون های جدول سمت راست تهی می کند.
نحو:
Table1.Column1 ، Table2.Column2 را انتخاب کنید
از جدول 1
پیوستن به سمت چپ جدول 2 در جدول 1.common_column = table2.common_column ؛
مثال:
SELECT employees.id, employees.name, departments.name AS department
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;
-
RIGHT JOIN (سمت راست بیرونی)
تمام ردیف ها را از جدول سمت راست و ردیف های مطابق از جدول سمت چپ برمی گرداند. در صورت عدم تطابق ، برای ستون های جدول سمت چپ تهی می کند.
نحو:
Table1.Column1 ، Table2.Column2 را انتخاب کنید
از جدول 1
TABLE2 TABLE2 در جدول 1.common_column = Table2.common_column ؛
مثال:
SELECT employees.id, employees.name, departments.name AS department
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.id;
-
پیوستن کامل (پیوستن کامل بیرونی)
هنگامی که یک مسابقه در هر جدول وجود دارد ، تمام ردیف ها را برمی گرداند. در صورت عدم مطابقت ، مقادیر تهی بازگردانده می شوند.
نحو:
Table1.Column1 ، Table2.Column2 را انتخاب کنید
از جدول 1
جدول کامل جدول 2 در جدول 1.common_column = table2.common_column ؛
مثال:
SELECT employees.id, employees.name, departments.name AS department
FROM employees
FULL JOIN departments ON employees.department_id = departments.id;
-
صلیب پیوستن
محصول دکارتی هر دو جدول را برمی گرداند (هر ردیف جدول 1 با هر ردیف جدول 2 ترکیب شده است).
نحو:
Table1.Column1 ، Table2.Column2 را انتخاب کنید
از جدول 1
Cross Join Table2 ؛
مثال:
SELECT employees.name, departments.name AS department
FROM employees
CROSS JOIN departments;
-
خود بپیوندد
یک جدول برای مقایسه ردیف ها به خود می پیوندد.
مثال:
E1.Name را به عنوان کارمند انتخاب کنید ، E2.Name به عنوان مدیر
از کارمندان E1
به کارمندان E2 در e1.manager_id = e2.id بپیوندید ؛ -
با استفاده از استفاده از (Simplified Join) بپیوندید
اگر هر دو جدول دارای نام ستون یکسان هستند ، می توانید به جای ON از استفاده استفاده کنید.
مثال:
کارمندان را انتخاب کنید. id ، کارمندان. نام ، بخش ها. نام به عنوان بخش
از کارمندان
با استفاده از (Department_ID) به بخش ها بپیوندید.