Karıştır ve eşleştir - LEFT & RIGHT join

SQL Server'a Giriş

John MacKintosh

Instructor

LEFT ve RIGHT join'lerin gerekçesi

  • Neden LEFT ve RIGHT join'lere ihtiyaç duyarız?
  • Bir tabloda diğerinde tam eşleşme olmayabilir:
    • Pazarlama kampanyası için müşteri sipariş geçmişi
    • Ürün listesi ve iade geçmişi
    • Yatırılan ancak henüz taburcu edilmeyen hastalar
SQL Server'a Giriş

LEFT ve RIGHT join'lerin gerekçesi

  • Neden LEFT ve RIGHT join'lere ihtiyaç duyarız?
  • Bir tabloda diğerinde tam eşleşme olmayabilir:
    • Pazarlama kampanyası için müşteri sipariş geçmişi
    • Ürün listesi ve iade geçmişi
    • Yatırılan ancak henüz taburcu edilmeyen hastalar
SQL Server'a Giriş

Kabul tablosu

+------------+----------+
| Patient_ID | Admitted | 
|------------+----------|
| 1          | 1        |
| 2          | 1        |
| 3          | 1        |
| 4          | 1        |
| 5          | 1        |
+------------+----------+

Taburcu tablosu

+------------+------------+
| Patient_ID | Discharged | 
|------------+------------|
| 1          | 1          |
| 3          | 1          |
| 4          | 1          |
+------------+------------+

INNER JOIN:

+------------+----------+------------|
| Patient_ID | Admitted | Discharged |
|------------+----------|------------|
| 1          | 1        | 1          |
| 3          | 1        | 1          |
| 4          | 1        | 1          |
+------------+----------+------------+

LEFT JOIN:

+------------+----------+------------|
| Patient_ID | Admitted | Discharged |
|------------+----------|------------|
| 1          | 1        | 1          |
| 2          | 1        | NULL       |
| 3          | 1        | 1          |
| 4          | 1        | 1          |
| 5          | 1        | NULL       |
+------------+----------+------------+
SQL Server'a Giriş

LEFT JOIN sözdizimi

SELECT 
  Admitted.Patient_ID, 
  Admitted, 
  Discharged 
FROM Admitted 
LEFT JOIN Discharged ON Discharged.Patient_ID = Admitted.Patient_ID;

SQL Server'a Giriş
SELECT 
  Admitted.Patient_ID, 
  Admitted, 
  Discharged 
FROM Admitted 
LEFT JOIN Discharged ON Discharged.Patient_ID = Admitted.Patient_ID;
+------------+----------+------------|
| Patient_ID | Admitted | Discharged |
|------------+----------|------------|
| 1          | 1        | 1          |
| 2          | 1        | NULL       |
| 3          | 1        | 1          |
| 4          | 1        | 1          |
| 5          | 1        | NULL       |
+------------+----------+------------+
SQL Server'a Giriş

RIGHT JOIN

SELECT 
  Admitted.Patient_ID, 
  Admitted, 
  Discharged 
FROM Discharged 
RIGHT JOIN Admitted ON Admitted.Patient_ID = Discharged.Patient_ID;

SQL Server'a Giriş

RIGHT JOIN sonuçları

SELECT 
  Admitted.Patient_ID, 
  Admitted, 
  Discharged 
FROM Discharged 
RIGHT JOIN Admitted ON Admitted.Patient_ID = Discharged.Patient_ID;
+------------+----------+------------|
| Patient_ID | Admitted | Discharged |
|------------+----------|------------|
| 1          | 1        | 1          |
| 2          | 1        | NULL       |
| 3          | 1        | 1          |
| 4          | 1        | 1          |
| 5          | 1        | NULL       |
+------------+----------+------------+
SQL Server'a Giriş

Özet

  • INNER JOIN: Yalnızca eşleşen satırlar döner
  • LEFT JOIN (veya RIGHT JOIN): Ana tablodaki tüm satırlar + eşleşenler
  • NULL: Eşleşme yoksa gösterilir
  • LEFT JOIN ve RIGHT JOIN birbirinin yerine kullanılabilir
SQL Server'a Giriş

SQL Server'a Giriş

Ayo berlatih!

SQL Server'a Giriş

Preparing Video For Download...