23 Mart 2021 Salı

FULL OUTER JOIN - İki Tablonun Union'ı Gibidir

Giriş
Join tiplerini görsel olarak gösteren resimler burada.
Şeklen şöyle
Bir başka şekil şöyle


İki çeşit FULL OUTER JOIN var.
1.  FULL OUTER JOIN
2.  FULL OUTER JOIN (IF NULL)

Not : Bazı veri tabanları Full Outer Join'i desteklemez. Örneğin MySQL. Açıklaması şöyle
Unlike SQL Server, MySQL does not have a distinct JOIN type for FULL OUTER JOIN. You may, however, combine LEFT OUTER JOIN and RIGHT OUTER JOIN to get the same effects as FULL OUTER JOIN.
Bu durumda şöyle yaparız
SELECT *  FROM tableA 
LEFT JOIN tableB 
  ON tableA.id = tableB.id

UNION

SELECT * FROM tableA
RIGHT JOIN tableB 
  ON tableA.id = tableB.id

1.  FULL OUTER JOIN
Örnek
Şöyle yaparız
SELECT FROM tableA a FULL OUTER JOIN tableB b ON a.key = b.key
Örnek
Şöyle yaparız
-- Retrieve all employees and department names, including those -- without a department and departments without employees SELECT employees.employee_name, departments.department_name FROM employees FULL JOIN departments ON employees.department_id = departments.department_id;
2. RIGHT JOIN (IF NULL)
İki tablonun kesişimi olmayan satırları gösterir.
Örnek
Şöyle yaparız
SELECT FROM tableA a FULL OUTER JOIN tableB b on a.key = b.key
WHERE a.key IS NULL OR b.key IS NULL


Hiç yorum yok:

Yorum Gönder