MySQL JOIN işlemi, birden fazla tablodan veri almak ve bu verileri birleştirmek için kullanılan bir SQL komutudur INNER, LEFT, RIGHT ve FULL OUTER JOIN gibi farklı JOIN türlerini kullanarak verilerinizi nasıl filtreleyebileceğinizi öğrenebilirsiniz INNER JOIN, eşleşen verileri içeren kayıtları döndürürken, LEFT JOIN sol tablodaki tüm kayıtları ve sağ tablodaki eşleşen kayıtları döndürür LEFT OUTER JOIN, eşleşmeyen kayıtların da dahil edildiği bir LEFT JOIN işlemidir JOIN işlemini kullanarak verileri filtrelemek, veritabanınızdan yalnızca istediğiniz verileri elde etmenizi sağlar ve işleme tablolar çok sayıda veri içeriyorsa, bunu daha hızlı bir şekilde yapmanıza olanak tanır

MySQL, veritabanı yönetiminde kullanılan en popüler araçlardan biridir. Bununla birlikte, verilerin doğru ve hızlı bir şekilde filtrelenebilmesi için JOIN işlemi oldukça önemlidir.
JOIN, birden fazla tablodan veri almak ve bu verileri birleştirmek için kullanılan bir SQL komutudur. İki veya daha fazla tablodan kayıtların nasıl alınacağına karar verirken dikkatli olmak önemlidir. JOIN işlemi, tablolardaki birden çok sütun arasında eşleştirme yaparak verileri elde etmenize olanak tanır. INNER, LEFT, RIGHT ve FULL OUTER JOIN gibi farklı JOIN türlerini kullanarak verilerinizi nasıl filtreleyebileceğinizi öğrenin.
INNER JOIN, eşleşen verileri içeren kayıtları döndürür. LEFT JOIN, sol tablodan tüm kayıtları ve sağ tablodan eşleşen kayıtları döndürür. LEFT OUTER JOIN, eşleşmeyen kayıtların da dahil edildiği bir LEFT JOIN işlemidir. LEFT INNER JOIN, eşleşen verilerin yanı sıra sol tablodan tüm kayıtları da döndürür. RIGHT JOIN, sağ tablodan tüm kayıtları ve sol tablodan eşleşen kayıtları döndürür.
UNION, sorgu sonuçlarını birleştirirken UNION ALL, sütunlar arasında eşleşme yapmaz ve aynı sütunda tekrarlı verileri dahil eder. JOIN işlemini kullanarak verileri filtrelemek veritabanınızdan yalnızca istediğiniz verileri elde etmenizi sağlar ve işleme tablolar çok sayıda veri içeriyorsa, bunu daha hızlı bir şekilde yapmanıza olanak tanır.
JOIN Nedir?
MySQL JOIN, SQL sorguları için kullanılan bir işlem türüdür. JOIN işlemi, birkaç tabloyu birleştirerek veri setlerini birleştirir. Veriler, herhangi bir sayıda tablo arasında ortak alanlar (sütunlar) aracılığıyla birleştirilebilir. Bu sayede, birden fazla tablonun verileri tek bir sonuç kümesinde birleştirilebilir, veri alışverişi yapılabilir ve belirli veri kümeleri elde edilebilir.
Veri tabanında bir veya daha fazla tablo oluşturulan projelerde JOIN sorguları çok önemlidir. Birden fazla tabloya veri girdi veya verilerin listesi gereken zamanlarda JOIN türleri kullanılmaktadır. MySQL JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN gibi farklı tiplerde gelir. INNER JOIN, diğer adıyla JOIN, sadece eşleşen verileri içeren kayıtları döndürür, LEFT JOIN sol tablodaki tüm kayıtlar ve sağ tablodaki eşleşen kayıtlarla birlikte, RIGHT JOIN yalnızca sağ tablodaki tüm kayıtları ve sol tablodaki eşleşen kayıtları döndürür.
JOIN Türü | Açıklama |
---|---|
INNER JOIN | Eşleşen verileri döndürür |
LEFT JOIN | Sol tablodaki tüm kayıtları ve sağ tablodaki eşleşen kayıtları döndürür |
RIGHT JOIN | Sağ tablodaki tüm kayıtları ve sol tablodaki eşleşen kayıtları döndürür |
Bu birleştirme işlemi, tablolar arasındaki benzer özelliklere (alanlara) üst düzeyde erişebilmenizi sağlar. Bu nedenle, JOIN'leri kullanarak veri kümelerinizdeki verileri daha iyi filtreleyebilir ve yalnızca ihtiyacınız olan verileri alabilirsiniz.
INNER JOIN
MySQL'de JOIN işlemi, veritabanlarından verileri almanın en yaygın yollarından biridir. INNER JOIN, JOIN komutunun bir türüdür ve birden fazla tablodan veri çekerken bu verileri birleştirir. INNER JOIN, eşleşen verileri içeren kayıtları döndürür.
Bir INNER JOIN örneği olarak, bir sinema veritabanındaki filmler tablosu ve yönetmenler tablosu ele alınabilir. Bu iki tablo arasında bir INNER JOIN işlemi gerçekleştirildiğinde, sadece filmleri yönetmenleriyle birlikte görüntülemek mümkün olur. Örneğin, "The Dark Knight" filminin yönetmeni Christopher Nolan ise INNER JOIN ile katılabileceği tablo, yönetmenler tablosudur.
INNER JOIN işleminin bir avantajı, yalnızca eşleşen verileri döndürmesi ve bu nedenle gereksiz veri yüklemesi riski olmamasıdır. INNER JOIN uygulaması, verilerin daha hızlı çekilmesine yardımcı olur ve veritabanlarından verilerin etkili bir şekilde filtrelenmesine olanak tanır.
Tablolar arasındaki bağlantıları anlamak ve doğru JOIN türünü seçmek, veritabanlarından verileri doğru şekilde filtrelemek ve çekmek için büyük önem taşır.
LEFT JOIN
LEFT JOIN, MySQL JOIN işleminde kullanılan bir türdür ve sol tablodan tüm kayıtları ve sağ tablodan eşleşen kayıtları döndürür. Bu tür kullanıldığında, sol tablodaki tüm veriler sağ tablodaki verilerle eşleştirilir ve birleştirilir. Ancak sağ tablodaki herhangi bir veri sol tabloda eşleşmiyorsa, bu veri NULL olarak gösterilir.
Bir örnek vermek gerekirse, bir ürünler tablosu ve bir siparişler tablosu olsun. Ürünler tablosu, ürünlerin adı ve fiyatı gibi bilgileri içerirken siparişler tablosu, sipariş veren kişinin adı, sipariş tarihi ve sipariş edilen ürün hakkındaki bilgileri içerir. Bu tabloları birleştirmek istediğinizde ve her siparişin yanı sıra sipariş edilen ürünün adını da görmek istediğinizde, LEFT JOIN kullanabilirsiniz.
Ürünler | ||||
---|---|---|---|---|
Ürün ID | Ürün adı | Açıklama | Fiyat | Stok |
1 | Kulaklık | Kablosuz kulaklık | 150 TL | 20 |
2 | Akıllı saat | Sağlık takibi yapabilen akıllı saat | 500 TL | 10 |
Siparişler | |||
---|---|---|---|
Sipariş ID | Sipariş tarihi | Sipariş eden kişi | Ürün ID |
1 | 01.01.2022 | Ahmet Yılmaz | 1 |
2 | 02.01.2022 | Ali Aydın | 2 |
Eğer bu tabloları LEFT JOIN kullanarak birleştirirseniz, tüm ürünleri ve ilgili siparişleri görebilirsiniz. Örneğin, Ahmet Yılmaz'ın verdiği siparişte kulaklık varken, Ali Aydın'ın verdiği siparişte akıllı saat var. Sol tablo ürünler, sağ tablo siparişler ve birleştirilmiş tablo da her iki tabloda yer alan tüm verileri içeren bir tablodur.
LEFT OUTER JOIN
MySQL'de JOIN işlemlerinin bir diğer türü ise LEFT OUTER JOIN'dur. Bu join işlemi, sol tablodan tüm kayıtları ve sağ tabloda eşleşme olmayan verileri de döndürür. Yani, eşleşme sağlanamayan kayıtlar da dahil edilir. LEFT OUTER JOIN işlemi, eşleşmeyen kayıtların da göz önünde bulundurulduğu bir LEFT JOIN işlemidir.
Bu işlemi bir örnekle açıklayalım: Diyelim ki "employees" adlı bir tablonuz var ve bu tabloda çalışanların adı, soyadı, departmanı ve maaşı kayıtlı. Ayrıca, "departments" diye bir tablonuz daha var ve bu tabloda her departmana ait bir id ve ayrıntılı bilgiler yer alıyor. Şimdi, bu iki tabloyu birleştirmek istediğimizi varsayalım. Sol tarafta "employees" tablosu, sağ tarafta ise "departments" tablosu yer alsın. LEFT OUTER JOIN işlemi uygulayarak, tüm çalışanlar listelenirken, çalışanların bağlı olduğu departmanlar da dahil edilebilir.
employees | departments |
---|---|
John | Sales |
Jane | Marketing |
Mark | HR |
Albert | |
Emily |
Yukarıdaki örnekte, "Albert" ve "Emily" adlı çalışanlar herhangi bir departmana bağlı değil, dolayısıyla "null" olarak belirtilmiş. LEFT OUTER JOIN işlemi sayesinde bu bilgi de dahil edilerek, sonuç setinde tüm çalışanlar yer alır.
LEFT INNER JOIN
LEFT INNER JOIN, SQL JOIN işlemi kapsamında kullanılabilen bir türdür. Bu JOIN işlemi, sol tablodan eşleşen verilerin yanı sıra sol tablodaki tüm kayıtları da döndürür. Genellikle birincil anahtarların bulunduğu bir tablo ve birincil anahtarın yabancı anahtar olarak kullanıldığı bir tablo arasında kullanılır.
Bu JOIN türü, RIGHT INNER JOIN ve FULL INNER JOIN işlemleriyle birlikte kullanılabilmektedir. LEFT INNER JOIN işlemi sonucunda, eşleşen bilgiler sağ tabloda yer alsaydı, RIGHT INNER JOIN işlemi oluşurdu. Eşleşen kayıtların yanı sıra, sol tablodaki tüm kayıtların döndürülmesi nedeniyle LEFT INNER JOIN işlemi, LEFT OUTER JOIN işlemiyle de benzerdir. Ancak, LEFT OUTER JOIN işleminde, eşleşmenin tamamının yapılmaması durumunda sol tabloda null alanlar doldurulurken, LEFT INNER JOIN işleminde böyle bir durum oluşmaz.
Buna örnek olarak; 'siparişler' tablosundan alınan sipariş verileriyle, 'müşteri' tablosundan müşteri bilgileri eşleştirilebilir. LEFT INNER JOIN işlemi ile sadece sipariş vermiş olan müşterilerin bilgileri eşleştirilirken, tüm müşteri bilgilerinin içinde bulunduğu müşteriler tablosunun tamamı döndürülebilir. Bu sayede, sadece sipariş veren kullanıcılara özel kampanyalar yapmak veya müşteri analizleri yapmak mümkün olabilir.
RIGHT JOIN
MySQL JOIN işlemi, SQL komutlarını kullanarak birden fazla tablodan verileri çekmeye ve bu verileri birleştirmeye yarayan bir yöntemdir. RIGHT JOIN ise sağ tablodan tüm kayıtları ve sol tablodan eşleşen kayıtları döndürür.
Bu JOIN türü, INNER JOIN ve LEFT JOIN ile birlikte sıklıkla kullanılır. Sol tablonun sütunlarına soldaki veriler ve sağ tablonun sütunlarına da sağdaki veriler eklenir. Eşleşme yapmayan kayıtlar ise boş bırakılır.
RIGHT JOIN tabloların incelenmesinde sağ taraftaki tablonun temel olacağı anlamına gelir. Bu da sağ tabloda herhangi bir yoksunluk yaşansa bile bu kaydın ve eşleşen sol tablo kaydının getirilmesi anlamına gelir. RIGHT JOIN kullanırken, tabloların bir birileriyle uyumlu olması önemlidir. Aksi takdirde beklenmedik sonuçlar elde edilebilir.
Ad | Bölüm | Maas |
---|---|---|
Ali | Muhasebe | 5000 |
Ahmet | IT | 7000 |
Deniz | IT | 6000 |
Elif | Insan Kaynaklari | 4500 |
Fatma | IT | 7500 |
Yukarıdaki örnek bir çalışan tablosunu ve bir ödeme tablosunu düşünelim. Bu tablolarda Bölüm sütunu ortak bir sütundur. RIGHT JOIN kullanarak, IT bölümünde çalışan tüm kişilerin adlarını ve maaşlarını görebiliriz. Ayrıca ödeme tablosundaki bilgilerdeki eksik boşluklar da doldurulmuş olur.
- SELECT Calisanlar.Ad, Calisanlar.Maas, OdemeTablosu.Aciklama FROM Calisanlar RIGHT JOIN OdemeTablosu ON Calisanlar.Bolum = OdemeTablosu.Bolum WHERE Calisanlar.Bolum = 'IT';
Bu sorgu sonucu, IT bölümünde çalışanların ad ve maaş bilgilerine ek olarak ödeme tablosundaki açıklamaları da içerecektir.
UNION
MySQL'de JOIN işlemi, birden fazla tablodan veri seçmek ve bu verileri birleştirmek için kullanılan önemli bir SQL komutudur. JOIN işlemi, verilerinizi filtreleyerek yalnızca istediğiniz verileri elde etmenizi sağlar. Bu yazımızda, birden fazla tablodan sorgu sonuçlarını birleştirmek için kullanılan UNION komutunu inceleyeceğiz.
UNION, farklı tablolardan gelen aynı yapıya sahip verileri toplamak için kullanılır. Bu komut, herhangi bir tabloda bulunan verileri alır ve diğer tablolardan da benzer verileri alarak birleştirir. Bu yöntemle, bir sorgudan birden fazla sonuç elde ederek daha yoğun ve anlamlı bir veri kümesi elde edebilirsiniz.
Bununla birlikte, UNION işlemi, birleştirilecek tablolarda birleşen sütunların aynı veri tiplerine sahip olması gerektiği için bazı zorluklarla karşılaşabilirsiniz. Her iki tablonun da aynı veri tiplerine sahip olmadığı durumlarda, UNION işlemi yapmak için ilgili sütunların veri tipleri birleştirilebilir ya da birleştirilemeyen sütunlar çıkarılabilir.
UNION ALL, UNION işlemine benzer bir şekilde çalışır, ancak sütunlar arasında eşleşme yapmaz ve aynı sütunda tekrarlayan verileri de dahil eder. Bu nedenle, UNION ALL kullanıldığında veri kümesi daha geniş ve daha detaylı olabilir. Ancak bu işlem de benzer şekilde, her iki tablonun aynı veri tiplerine sahip olması gerektiği için bazı zorluklarla karşılaşma riski taşır.
UNION ve UNION ALL işlemleri, veritabanlarında veri yapısını anlamak ve verilerin filtrelenmesi ihtiyacında kritik öneme sahiptir. İki tablodan veya veri kümesinden birden fazla sonuç birleştirme ve verilerin toplanması ihtiyacında, UNION komutunu kullanmak birçok açıdan avantajlıdır.
UNION ALL
Birleştirme işlemini hızla ve kolayca gerçekleştirmek istediğinizde UNION ALL size oldukça yardımcı olacaktır. UNION ALL, UNION işlemi gibi çalışır ve birden fazla tablodan sorgu sonuçlarını tek tabloda birleştirir. Ancak UNION ALL, sütunlar arasında eşleşme yapmaz ve aynı sütunda tekrarlayan verileri dahil eder.
Bu işlemin özellikle, birden fazla tablodan gelen aynı sütunlardaki verileri tek tabloda görmek istediğinizde kullanışlı olduğunu söyleyebiliriz. Bu sayede, farklı tablolardaki verilerin benzerliklerini kolayca görebilir ve karşılaştırabilirsiniz. Ancak bu işlemi yaparken, tekrarlanan verilerin tek tabloda sayıca artacağını da unutmamak gerekir.
Veri Filtreleme
Veri filtreleme işlemi, JOIN işlemi sayesinde sadece istediğimiz verileri elde etmemize imkan tanıyan bir yöntemdir. Veritabanımızda farklı tablolardan verileri filtrelemek istediğimizde JOIN işlemi kullanarak bu verileri birleştirebiliriz. Böylece, istediğimiz sütunları seçerek verilerimizi filtreleyebiliriz.
Örneğin, bir e-ticaret sitesinde kullanıcılar, ürünler ve siparişler tabloları bulunabilir. Bu tablolardaki verileri JOIN işlemi kullanarak birleştirerek, herhangi bir kullanıcının geçmiş siparişlerini görebiliriz. Ayrıca, belirli bir ürün için yapılan tüm siparişleri de görüntüleyebiliriz.
JOIN işlemi için kullanılan anahtar, her iki tablodaki ilgili sütunlardaki değerlerin eşleşmesidir. Örneğin, kullanıcılarda bir "kullanıcı_id" sütunu olabilir ve siparişlerde de bir "kullanıcı_id" sütunu olabilir. Bu sütunları kullanarak kullanıcılar tablosu ile siparişler tablosunu birleştirerek, her kullanıcının tüm siparişlerini görebiliriz.
Ayrıca, neden veri filtreleme işlemine ihtiyacımız olduğunu anlamak da önemlidir. Veritabanlarında çok fazla veri bulunduğundan, sadece belirli verilere ihtiyacımız olabilir. Bu nedenle, veri filtrelemesi yaparak, sadece istediğimiz verileri alabilir ve işlemlerimizi daha hızlı ve verimli hale getirebiliriz.
Sonuç olarak, JOIN işlemi kullanarak veri filtreleme işlemi, veritabanınızdan yalnızca istediğiniz verileri elde etmenizi sağlar. Bu işlemi kullanarak verilerinizi daha iyi anlayabilir ve farklı tablolardaki verileri birleştirerek daha kapsamlı bir görünüm elde edebilirsiniz.