logo

SQL JOIN Türleri

SQL KATILIN

Tanımlanan koşullara göre iki veya daha fazla tablodan verileri (satırlar veya sütunlar) getirmek veya birleştirmek için SQL Birleştirmesi kullanılır.

Tablo 1: Sipariş

Sipariş Kimliği Müşteri Kimliği SiparişAdı Ürün adı
12025 101 Peter ABC
12030 105 Robert XYX
12032 110 James XYZ
12034 115 Andrew PQR
12035 120 Mathew AAA

Tablo 2: Müşteri

Müşteri Kimliği Müşteri adı Ülke
100 Dağınık Maxico
101 Prens Tayvan
103 Maria Fernandez Türkiye
105 Yasemin Paris
110 Faf Gelincik Endonezya
120 Roma Roketi Rusya

Artık iki tablomuz var Emir ve Müşteri . Var Müşteri Kimliği sütun her iki tabloda da ortaktır. Bu nedenle, her iki tablodan da eşleşme kayıtlarını seçmek için genel ilişkiyi tanımlamak üzere SQL sorgusunu yazın.

 Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID; 

Yukarıdakileri uyguladıktan sonra SQL sorgular, aşağıdaki çıktıyı üretir:

Sipariş Kimliği Müşteri adı Ülke Ürün adı
12025 Prens Tayvan ABC
12030 Yasemin Paris XYX
12032 Faf Gelincik Endonezya XYZ
12035 Roma Roketi Rusya AAA

SQL Katılım Türleri

SQL'de kullanılan farklı birleştirme türleri vardır:

  1. İç Birleştirme / Basit Birleştirme
  2. Sol Dış Birleştirme / Sol Birleştirme
  3. Sağ Dış Birleştirme / Sağ Birleştirme
  4. Tam Dış Birleştirme
  5. Çapraz Katılma
  6. Kendi Kendine Katılma

İç birleşim

İç birleştirme, her iki tablodaki eşleşen tüm satırları veya sütunları seçmek için veya tanımlanan koşul SQL'de geçerli olduğu sürece kullanılır.

Sözdizimi:

 Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column; 

İç birleştirmeyi Venn diyagramı aracılığıyla aşağıdaki gibi gösterebiliriz:

SQL JOIN Türleri

Tablo 1: Öğrenciler

Öğrenci Kimliği Öğrenci adı Ders Öğretmen Kimliği
101 Alexandra Bilgisayar Bilimi T201
102 Charles Ekonomi T202
103 Tom Cruise Bilgisayar Bilimi T201
104 Aaron Finch Elektronik T203
105 Tohum Bajoff Web tasarımı T204
106 Christopher İngiliz edebiyatı T205
107 Kot Moda tasarımcısı T206

Tablo 2: Öğretmenler

Öğretmen Kimliği Öğretmen adı ÖğretmenE-posta
T201 Bay Davis [e-posta korumalı]
T202 Bayan Jonas [e-posta korumalı]
T201 Bay Davis [e-posta korumalı]
T204 Bayan Lopez [e-posta korumalı]
T205 Bayan Wiley [e-posta korumalı]
T206 Bay Bean [e-posta korumalı]

İki tablomuz var: Öğrenciler ve Öğretmenler Tablolar. Tabloyu kullanarak tabloya katılacak SQL Sorgularını yazalım. İÇ BİRLEŞİM aşağıdaki gibi:

 Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID; 

Sorguyu çalıştırdıktan sonra aşağıdaki tabloyu oluşturur.

SQL JOIN Türleri

Doğal Birleştirme

İki veya daha fazla tabloyu aynı sütun adına göre birleştiren ve her iki tabloda da aynı veri türüne sahip olan bir iç tür türüdür.

Sözdizimi:

 Select * from tablename1 Natural JOIN tablename_2; 

İki tablomuz var: Öğrenciler ve Öğretmenler Tablolar. Tabloyu kullanarak tabloya katılacak SQL Sorgularını yazalım. Doğal KATIL aşağıdaki gibi:

 Select * from Students Natural JOIN Teachers; 

Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki tabloyu oluşturur.

SQL JOIN Türleri

SOL YÖNDEN KATILIM

SOL YÖNDEN KATILIM soldaki tablodan (tablo1) tüm kayıtları, sağdaki tablodan (tablo2) eşleşen satır veya sütunları almak için kullanılır. Her iki tablo da eşleşen satır veya sütun içermiyorsa NULL değerini döndürür.

Sözdizimi:

 Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name; 

Ayrıca sol birleşimi Venn diyagramı aracılığıyla aşağıdaki gibi temsil edebiliriz:

SQL JOIN Türleri

Not: Bazı veritabanlarında LEFT JOIN, LEFT OUTER JOIN olarak da bilinir.

Tablo 1: Ürün_Ayrıntıları

Ürün kimliği Ürün adı Miktar
Pro101 Dizüstü bilgisayar 56000
Pro102 Mobil 38000
Pro103 Kulaklıklar 5000
Pro104 Televizyon 25000
Pro105 iPad 60000

Tablo 2: Müşteri_Ayrıntıları

java'daki csv dosyasından okuyun
Müşteri adı Müşteri adresi Müşteri Yaşı Ürün kimliği
Martin Guptill San Francisco, ABD 26 Pro101
James Avustralya 29 Pro103
Ambati Williamson Yeni Zelanda 27 Pro102
Jofra Okçu Güney Afrika 24 Pro105
Kate Wiley Avustralya yirmi Pro103

İki tablomuz var: Ürün Detayları ve Müşteri detayları Tablolar. Tabloyu kullanarak tabloya katılacak SQL Sorgularını yazalım. SOL YÖNDEN KATILIM aşağıdaki gibi:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

Sorguyu çalıştırdıktan sonra aşağıdaki tabloyu oluşturur.

SQL JOIN Türleri

DOĞRU KATILIN sağdaki tablodan (tablo2) tüm kayıtları, soldaki tablodan (tablo1) eşleşen satır veya sütunları almak için kullanılır. Her iki tablo da eşleşen satır veya sütun içermiyorsa NULL değerini döndürür.

Sözdizimi:

 Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name; 

Doğru birleştirmeyi Venn diyagramı aracılığıyla aşağıdaki gibi de gösterebiliriz:

SQL JOIN Türleri

Not: Bazı veritabanlarında RIGHT JOIN aynı zamanda RIGHT OUTER JOIN olarak da bilinir.

Tablo 1: Ürün_Ayrıntıları

İD Ürün adı Miktar
Pro101 Dizüstü bilgisayar 56000
Pro102 Mobil 38000
Pro103 Kulaklıklar 5000
Pro104 Televizyon 25000
Pro105 iPad 60000

Tablo 2: Müşteri_Ayrıntıları

Müşteri adı Müşteri adresi Müşteri Yaşı Ürün kimliği
Martin Guptill San Francisco, ABD 26 Pro101
James Avustralya 29 Pro103
Ambati Williamson Yeni Zelanda 27 Pro102
Jofra Okçu Güney Afrika 24 Pro105
alamet İngiltere 29 Pro107
Morgan İngiltere yirmi Pro108

İki tablomuz var: Ürün Detayları ve Müşteri detayları Tablolar. Tabloyu kullanarak tabloya katılacak SQL Sorgularını yazalım. DOĞRU KATILIN aşağıdaki gibi:

vicky kaushal'ın yaşı
 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

Sorguyu çalıştırdıktan sonra aşağıdaki tabloyu oluşturur.

SQL JOIN Türleri

FULL JOIN veya FULL Outer JOIN:

Her ikisinin birleşiminden oluşan bir sonuç kümesidir SOL YÖNDEN KATILIM Ve DOĞRU KATILIN . Birleştirilen tablolar, her iki tablodaki tüm kayıtları döndürür ve tabloda hiçbir eşleşme bulunamazsa NULL değerini yerleştirir. Aynı zamanda denir TAM DIŞ BİRLEŞİM .

Sözdizimi:

 Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name; 

Veya, TAM DIŞ BİRLEŞİM

 Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name; 

Ayrıca tam dış birleşimi Venn diyagramı aracılığıyla aşağıdaki gibi temsil edebiliriz:

SQL JOIN Türleri

Tablo 1: Ürün_Ayrıntıları

İD Ürün adı Miktar
Pro101 Dizüstü bilgisayar 56000
Pro102 Mobil 38000
Pro103 Kulaklıklar 5000
Pro104 Televizyon 25000
Pro105 iPad 60000

Tablo 2: Müşteri_Ayrıntıları

Müşteri adı Müşteri adresi Müşteri Yaşı Ürün kimliği
Martin Guptill San Francisco, ABD 26 Pro101
James Avustralya 29 Pro103
Ambati Williamson Yeni Zelanda 27 Pro102
Jofra Okçu Güney Afrika 24 Pro105
alamet İngiltere 29 Pro107
Morgan İngiltere yirmi Pro108

İki tablomuz var: Ürün Detayları ve Müşteri detayları Tablolar. Tabloyu kullanarak tabloya katılacak SQL Sorgularını yazalım. TAM DOLU Aşağıdaki şekilde KATILIN:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID; 

Sorguyu çalıştırdıktan sonra aşağıdaki tabloyu oluşturur.

SQL JOIN Türleri

Not: MySQL, FULL JOIN kavramlarını desteklemediğinden, her iki tabloyu birleştirmek için UNION ALL yan tümcesini kullanabiliriz.

İşte sözdizimi BİRLİK TÜMÜ Tabloları birleştirmek için madde.

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID UNION ALL Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details RIGHT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID 

SQL JOIN Türleri

ÇAPRAZ KATIL

Aynı zamanda şu şekilde de bilinir: KARTEZYEN BİRLEŞİM iki veya daha fazla birleştirilmiş tablonun Kartezyen çarpımını döndürür. ÇAPRAZ KATIL ilk tablodaki her satırı ikinci tablo satırıyla birleştiren bir tablo üretir. CROSS JOIN'e herhangi bir koşul eklenmesi zorunlu değildir.

Sözdizimi:

 Select * from table_1 cross join table_2; 

Veya,

 Select column1, column2, column3 FROM table_1, table_2; 

Tablo 1: Ürün_Ayrıntıları

İD Ürün adı Miktar
Pro101 Dizüstü bilgisayar 56000
Pro102 Mobil 38000
Pro103 Kulaklıklar 5000
Pro104 Televizyon 25000
Pro105 iPad 60000

Tablo 2: Müşteri_Ayrıntıları

Müşteri adı Müşteri adresi Müşteri Yaşı Ürün kimliği
Martin Guptill San Francisco, ABD 26 Pro101
James Avustralya 29 Pro103
Ambati Williamson Yeni Zelanda 27 Pro102
Jofra Okçu Güney Afrika 24 Pro105
alamet İngiltere 29 Pro107
Morgan İngiltere yirmi Pro108

İki tablomuz var: Ürün Detayları ve Müşteri detayları Tablolar. Tabloyu kullanarak tabloya katılacak SQL Sorgularını yazalım. TAM DOLU Aşağıdaki şekilde KATILIN:

 Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details; 

Sorguyu çalıştırdıktan sonra aşağıdaki tabloyu oluşturur.

SQL JOIN Türleri

KENDİNE KATILIN

İki tablo olduğu için kendisini birleştirerek bir tablo oluşturmak için kullanılan bir SELF JOIN'dir. Bir SQL deyiminde en az bir tablonun geçici olarak adlandırılmasını sağlar.

Sözdizimi:

 Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition; 

tablo 1 Ve Tbl2 aynı tablo için iki farklı tablo takma adıdır.

Tablo 1: Ürün_Ayrıntıları

İD Ürün adı Miktar
Pro101 Dizüstü bilgisayar 56000
Pro102 Mobil 38000
Pro103 Kulaklıklar 5000
Pro104 Televizyon 25000
Pro105 iPad 60000

Tabloyu kullanarak tabloya katılacak SQL Sorgularını yazalım. KENDİNE KATILIN aşağıdaki gibi:

 Select TB.ID, TB.ProductName FROM Product_Details TB, Product_Details TB2 WHERE TB.AMOUNT <tb2.amount; < pre> <p>After executing the query, it produces the below table. </p> <img src="//techcodeview.com/img/sql-tutorial/44/types-sql-join-12.webp" alt="Types of SQL JOIN"> <hr></tb2.amount;>