Kurs
Yapılandırılmış Sorgu Dili olarak da bilinen SQL, büyük miktardaki veriyi taramak ve analize yönelik belirli bilgileri döndürmek için güçlü bir araçtır. SQL öğrenmek, veri analisti, veri mühendisi veya veri bilimcisi olmayı hedefleyen herkes için kritik önemdedir ve web geliştirme ya da pazarlama gibi birçok başka alanda da faydalıdır.
İster SQL becerilerinizi uygulayabileceğiniz yeni bir fırsat arayan bir iş adayı olun, ister şirketindeki bir pozisyon için adayı değerlendirecek bir işe alım yöneticisi olun, mülakatta mutlaka karşınıza çıkacak konu SQL join’larıdır.
SQL’de join, iki veya daha fazla tablodan kayıtları birleştirmek ve çekmek için kullanılan bir ifadedir. SQL tabloları, bu tabloların sütunları arasındaki ilişkiye göre birleştirilebilir.
Bu yazıda, en sık sorulan SQL join sorularını derledim. Bu mülakat sorularını pratik etmek, mülakata hazırlanmanıza ve bu popüler kavram hakkında soru sorulduğunda kendinizi daha güvende hissetmenize yardımcı olur.
Teste hazır mısınız? Hadi join’larla bir araya gelelim!
Özet: SQL Join’larında Mülakatın Kilit Noktaları
- Altı temel SQL join türü vardır:
INNER JOIN,LEFT JOIN,RIGHT JOIN,FULL JOIN,SELF JOINveCROSS JOIN. INNER JOINyalnızca eşleşen satırları döndürür;LEFT JOINveRIGHT JOINise bir taraftaki tüm satırları ve diğer taraftan gelen eşleşmeleri içerir.- İleri seviye mülakat konuları arasında semi-join, anti-join ve join’larda
ONileWHEREifadeleri arasındaki fark bulunur. - Join sorgularını elle yazmayı pratik edin—mülakatçılar, kusursuz söz dizimi ezberinden çok problem çözme yaklaşımınıza değer verir.
- Her join türünü ne zaman kullanmanız gerektiğini ve performansı nasıl etkilediklerini anlayın; özellikle Kartezyen çarpım üreten
CROSS JOIN’i.
10 Başlangıç Seviyesi SQL Join Mülakat Sorusu
1. Join nedir?
Join, iki veya daha fazla tablodan kayıtları birleştirmek ve çekmek için kullanılan bir SQL ifadesidir. SQL tabloları, bu tabloların sütunları arasındaki ilişkiye göre birleştirilebilir. Tüm detayları öğrenmek için SQL join’ları eğitimimize göz atın.
2. Join’ların ana türleri nelerdir?
Altı ana join türü vardır:
- INNER JOIN
- LEFT JOIN
- RIGHT JOIN
- FULL JOIN
- SELF JOIN
- CROSS JOIN
3. LEFT JOIN ile RIGHT JOIN arasındaki fark nedir?
LEFT JOIN, sol tablodaki tüm kayıtları ve sağ tablodaki eşleşen kayıtları döndürür. Sol tablodaki bir satırın sağ tabloda eşleşmesi yoksa, sonuçta sağ tablonun sütunlarında NULL değerleri yer alır.
RIGHT JOIN, sağ tablodaki tüm kayıtları ve sol tablodaki eşleşen kayıtları döndürür. Sağ tablodaki bir satırın sol tabloda eşleşmesi yoksa, sonuçta sol tablonun sütunlarında NULL değerleri yer alır.
-- LEFT JOIN: departmanı olmayanlar dahil tüm çalışanlar
SELECT employees.name, departments.dept_name
FROM employees
LEFT JOIN departments
ON employees.dept_id = departments.dept_id;
-- RIGHT JOIN: çalışanı olmayanlar dahil tüm departmanlar
SELECT employees.name, departments.dept_name
FROM employees
RIGHT JOIN departments
ON employees.dept_id = departments.dept_id;
İncelikleri daha yakından görmek için SQL LEFT JOIN ve LEFT OUTER JOIN rehberimizi okuyun.
4. SQL yönetiminde join’lar neden önemlidir?
SQL join’lar pek çok nedenle SQL yönetiminde kritik öneme sahiptir:
- SQL JOIN’lar, birden çok tabloyu okunması ve analiz edilmesi kolay hale getirecek şekilde entegre etmenin temel yöntemleridir.
- Veritabanınızdaki bilgileri erişilebilir ve verimli bir şekilde almaya ve birleştirmeye imkan tanırlar.
- JOIN kullanımı veritabanında veri kullanımını ve depolamayı azaltabilir.
5. OUTER JOIN nedir?
OUTER JOIN, iki tablonun birinden veya her ikisinden eşleşen ve eşleşmeyen değerleri döndürür. LEFT JOIN, RIGHT JOIN ve FULL JOIN, OUTER JOIN türleridir. Ayrıntılı karşılaştırma için SQL INNER JOIN vs. OUTER JOIN eğitimimize bakın.
6. INNER JOIN nedir?
INNER JOIN, her iki (veya tüm) tabloda tanımlanmış join koşulunu sağlayan kayıtları döndürür. Varsayılan SQL join türüdür.
7. CROSS JOIN nedir?
CROSS JOIN, Kartezyen çarpım oluşturur; yani ilk tablodaki her satır, ikinci tablodaki her satırla birleştirilir. Bu da satır sayısının iki tablodaki satır sayılarının çarpımına eşit olduğu bir veri kümesi üretir.
8. Bir SQL tablosu kendiyle join edilebilir mi?
Evet, bu genellikle self-join ile yapılır. Self-join, aynı tablo içindeki satırları karşılaştırmak için kullanılan bir JOIN türüdür. Diğer SQL JOIN sorgularının iki veya daha fazla tabloyu birleştirmesinden farklı olarak, self-join bir tabloyu yine kendisiyle birleştirir.
9. FULL JOIN ile CROSS JOIN arasındaki fark nedir?
FULL JOIN, her iki tablodaki tüm kayıtları ve ON koşuluyla eşleşen kayıtları döndürür. Eşleşme yoksa, tüm satırları içerir ve eşleşmeyen sütunları NULL ile doldurur.
Buna karşılık CROSS JOIN, her iki tablodaki tüm satırların tüm olası kombinasyonlarını döndürür ve bir Kartezyen çarpım üretir. Çıktıyı sınırlayan herhangi bir koşula dayanmadığı için, genellikle FULL JOIN sonucundan çok daha büyük bir tablo üretir.
10. SQL JOIN’larda takma ad (alias) kullanmanın amacı nedir?
Sorgular karmaşıklaştıkça adlar uzayıp kullanışsız hale gelebilir. Daha anlaşılır kılmak için sorgudaki öğelere—sütunlar ve tablolar dahil—yeni adlar atamak üzere alias kullanabiliriz. Bir nesneye alias vermek için AS ifadesini kullanabiliriz.
10 İleri Seviye SQL Join Mülakat Sorusu
11. EQUI JOIN nedir?
EQUI JOIN, iki veya daha fazla tablodan satırları eşitlik operatörü (=) kullanan bir eşleşme koşuluna göre birleştiren bir join işlemidir. Belirtilen sütunlardaki değerlerin eşit olduğu verileri getirmek için kullanılır.
EQUI JOIN, farklı bir söz dizimiyle INNER JOIN ile aynı sonuçları döndürür; aşağıdaki örnekte gösterildiği gibi:
SELECT COURSES.name, TECHNOLOGIES.name
FROM COURSES, TECHNOLOGIES
WHERE COURSES.technology_id = TECHNOLOGIES.technology_id;
SELECT COURSES.name, TECHNOLOGIES.name
FROM COURSES
INNER JOIN TECHNOLOGIES
ON COURSES.technology_id = TECHNOLOGIES.technology_id;
12. Join’da ON ve USING ifadeleri arasındaki fark nedir?
Genellikle join’i gerçekleştirmek için iki tablodaki ortak sütunları belirtmek üzere ON anahtar sözcüğünü kullanırsınız. Join’de kullanılacak sütunların her iki tabloda da aynı adla yer aldığı durumlarda, kısayol olarak USING ifadesi kullanılabilir.
Örneğin, COURSES ve TECHNOLOGIES tablolarında ortak ‘technology_id’ adlı bir sütun varsa, aşağıdaki sorguyu kullanabilirsiniz
SELECT * FROM COURSES
JOIN TECHNOLOGIES
USING (technology_id);
13. NATURAL JOIN nedir?
NATURAL JOIN, iki tablodaki ortak sütunlara (her iki tabloda da aynı ada sahip sütunlara) dayalı bir JOIN oluşturmada kullanılır.
Önceki sorudaki örneğe dayanarak, aynı sorguyu şu şekilde yazabiliriz:
SELECT * FROM COURSES
NATURAL JOIN TECHNOLOGIES
14. JOIN ifadesi ile UNION ifadesi arasındaki fark nedir?
JOIN ifadesi, iki veya daha fazla tablonun ortak sütunlarına dayalı olarak verileri yeni sütunlar halinde birleştirmek için kullanılır.
Buna karşılık, UNION ifadesi, iki veya daha fazla SELECT ifadesinin sonucuna dayalı olarak verileri yeni satırlar halinde birleştirmek için kullanılır. Başka bir deyişle, UNION veri kümelerini satır bazında birleştirmek için kullanılır. Hata önlemek için, UNION içindeki her SELECT ifadesinin aynı sayıda sütuna sahip olması ve sütunların benzer veri tiplerinde olması gerekir. İlgili işlemlerin tam bir özeti için SQL’de küme operatörleri rehberimize bakın.
15. Semi-join nedir?
Semi-join sorguları genellikle alt sorgular şeklinde yürütülür; burada yalnızca bir koşulun (veya koşullar kümesinin) ikinci tabloda karşılandığı durumlarda ilk (sol) tablodan satırlar alınır. Normal join’ların her iki tablodan eşleşen satırları içermesinin aksine, semi-join sonuçta yalnızca sol tablodan sütunları içerir.
-- EXISTS ile semi-join: sipariş vermiş müşterileri bul
SELECT customer_id, customer_name
FROM customers
WHERE EXISTS (
SELECT 1 FROM orders
WHERE orders.customer_id = customers.customer_id
);
16. Anti-join nedir?
Anti-join’lar, anti-semi-join olarak da bilinir, semi-join’ların tam tersidir. Anti-join’da, ilk tablodan satırlar ikinci tabloda karşılanmayan bir koşula (veya koşullar kümesine) göre alınır.
-- NOT EXISTS ile anti-join: hiç sipariş vermemiş müşterileri bul
SELECT customer_id, customer_name
FROM customers
WHERE NOT EXISTS (
SELECT 1 FROM orders
WHERE orders.customer_id = customers.customer_id
);
17. INTERSECT ifadesi ile INNER JOIN arasındaki fark nedir?
INNER JOIN, genellikle ortak bir sütun ya da alanı join koşulu olarak kullanarak, iki veya daha fazla tablodan verileri belirtilen bir ilişkiye göre birleştirir. Join koşulunun sağlandığı satırları içeren bir veri kümesi üretir.
Buna karşılık INTERSECT ifadesi doğrudan bir tablo ilişkisi gerektirmez. Bunun yerine, tamamlanmış SELECT ifadeleriyle çalışır ve yalnızca her iki sonuca ortak olan satırları döndürür. INTERSECT ifadesini kullanmak için SELECT ifadelerinin aynı sayıda sütuna ve uyumlu veri türlerine sahip olması gerekir.
18. CROSS JOIN kullanırken hangi performans hususları göz önünde bulundurulmalıdır?
CROSS JOIN, ilk tablodaki her satırın ikinci tablodaki her satırla eşleştirilmiş bir kombinasyonunu döndürdüğünden, özellikle birleştirilen tablolar zaten büyükse son derece büyük bir tablo ortaya çıkabilir. Bu nedenle, önemli kaynak tüketimine ve performans sorunlarına yol açma potansiyeli yüksek olduğundan CROSS JOIN kullanırken dikkatli olun.
19. Koşullu JOIN’den ne anlıyorsunuz?
Koşullu join’lar, belirli koşullara dayalı olarak birden çok tablodan verileri birleştirmeye yönelik güçlü bir tekniktir; bu da daha dinamik ve esnek sorgular oluşturmayı sağlar. Koşullu join’lar, toplama fonksiyonları, karşılaştırma operatörleri ve mantıksal operatörler gibi ek ifadeleri de içerebilen özel sorgular tanımlamaya yardımcı olur.
20. SQL JOIN’larda WHERE ile ON ifadeleri arasındaki fark nedir?
ON ifadesinin amacı, join koşullarını belirtmektir; başka bir deyişle tabloların nasıl birleştirileceğini tanımlar. Özellikle, kayıtların nasıl eşleştirileceğini belirlersiniz.
Buna karşılık WHERE ifadesi, sonuç kümesinde hangi satırların tutulacağını belirleyen filtreleme koşullarını belirtmek için kullanılır. Filtreleme koşulu içeren bir JOIN, koşullu JOIN olarak değerlendirilebilir.
SQL’in sorguları nasıl işlediğinin tam sırasını—özellikle ON ve WHERE’ın ne zaman değerlendirildiğini—anlamak için SQL yürütme sırası rehberimize bakın.
Farklı SQL JOIN Türlerinin Karşılaştırması
Aşağıdaki tablo, farklı SQL JOIN türlerinin özlü ve net bir karşılaştırmasını sunar; böylece her JOIN türünün hangi senaryolarda uygulanabileceğini anlamak kolaylaşır:
| JOIN Türü | Tanım | Kullanım Alanları |
|---|---|---|
| INNER JOIN | Yalnızca her iki tabloda da eşleşen değerlere sahip satırları döndürür. | Her iki tabloda da eşleşen değerlere sahip kayıtların getirilmesi gerektiğinde kullanılır. Genellikle bir yabancı anahtar üzerinden ilişkili verileri birleştirmek için kullanılır. |
| LEFT JOIN (LEFT OUTER JOIN) | Sol tablodaki tüm satırları ve sağ tablodaki eşleşen satırları döndürür. Sağ tabloda eşleşmesi olmayan sol tablo satırlarında NULL bulunur. | Sol tablodaki tüm kayıtları, varsa sağ tablodaki eşleşen verilerle birlikte almak için kullanışlıdır. Sıklıkla bir tablodaki tüm girdileri bulup diğerinde karşılıkları olup olmadığını görmek için kullanılır. |
| RIGHT JOIN (RIGHT OUTER JOIN) | Sağ tablodaki tüm satırları ve sol tablodaki eşleşen satırları döndürür. Sol tabloda eşleşmesi olmayan sağ tablo satırlarında NULL bulunur. | LEFT JOIN’e benzer ancak odağı sağ tablodur. Sol tabloda eşleşmesi olsun veya olmasın sağ tablodaki tüm kayıtlar gerektiğinde kullanılır. |
| FULL JOIN (FULL OUTER JOIN) | Sol veya sağ tabloda eşleşme olduğunda tüm satırları döndürür. Eşleşme yoksa, eşleşmenin olmadığı tarafta sonuç NULL’dur. | Her iki tablodan herhangi birinde bulunan verileri birleştirmek ve her iki tablodaki eşleşmeyen verileri yakalamak için kullanışlıdır. |
| SELF JOIN | Bir tablonun kendisiyle join yapılmasıdır. | Aynı tablo içindeki satırları karşılaştırmanız gerektiğinde kullanılır; örneğin hiyerarşik verilerde ilişkileri bulmak veya farklı satırlardaki değerleri karşılaştırmak için. |
| CROSS JOIN | İki tablonun Kartezyen çarpımını üretir; yani ilk tablodaki her satırı ikinci tablodaki her satırla birleştirir. | İki veri kümesinin tüm kombinasyonlarına ihtiyaç duyulduğunda, örneğin test verisi üretirken veya tüm olası kombinasyonları incelerken tipik olarak kullanılır. |
SQL Join Mülakatınıza Hazırlık
SQL mülakatına kapsamlı bir hazırlık, başvuru sürecinin bu aşamasını geçmek için kritiktir. Gördüğünüz gibi öğrenilecek hatırı sayılır sayıda join vardır. SQL join’ları için başlangıç düzeyinde bir rehber isterseniz, Introduction to SQL Joins içeriğimizi okumanızı şiddetle öneririz. Ya da join’ları sağlam şekilde kavramak istiyorsanız, öğrenmenin en iyi yolu pratiktir. Sorgularınızı tablo join’ları ve ilişkisel küme kuramıyla güçlendirmek için Joining Data in SQL Course içeriğimize göz atın.
Yine de SQL join’ları hakkında konuşulacak çok şey var. Çoğu SQL mülakatında bu, mülakatçınızın SQL akıcılığınızı ölçmek için soracağı birçok konudan yalnızca biridir. En yaygın SQL mülakat sorularına aşina olmanıza yardımcı olmak için aşağıdaki rehberleri derledim:
- 2026 için En İyi 84 SQL Mülakat Sorusu ve Cevabı
- Tüm Seviyeler İçin En İyi 45 PostgreSQL Mülakat Sorusu
- Tüm Seviyeler İçin En İyi 28 Veri Bilimci Mülakat Sorusu
- En İyi 30 SQL Server Mülakat Sorusu (2026)
- 2026 için En İyi 34 MySQL Mülakat Sorusu ve Cevabı
Mülakatlarla ilgili belirsizlik derecesi yüksek olduğundan, başvuru sürecinin bu aşaması stresli olabilir. Sonuçta, soruları bilmek hikayenin yalnızca bir kısmıdır. Geri kalan kısmı ise mülakat sırasında nasıl davranacağınızı bilmektir.
Mülakatı başarıyla geçmenize yardımcı olacak birkaç ipucu ve püf noktası:
- Kimseden her şeyi bilmesi beklenmez. Belirli bir beceriye sahip olmamak normaldir. Şirket R ile bir çözüm istiyorsa ama siz bunu yalnızca Python ile yapmayı biliyorsanız, Python ile nasıl çözüm üretebildiğinizi gösterin ve R öğrenmeye istekli olduğunuzu ifade edin.
- Cevaplamadan önce düşünün. Soru bunu gerektiriyorsa daha fazla zaman isteyin. Bu, sorularını ciddiye aldığınızı gösterir. Ancak bunu her soru için yapmayın.
- Rolünüzün şirket için neden kilit olduğunu açıklayın. Bazen, özellikle küçük şirketlerde, neden bir veri bilimciye ihtiyaç duyduklarını tam olarak bilmiyor olabilirler. Böyle bir durumda, mevcut ürünleri iyileştirerek veya yeni çözümler üreterek şirketin görünürlüğünü ve kârlılığını nasıl artırabileceğinizi vurgulayın.
- Sektörler farklıdır. Farklı alanlarda veri profesyoneli olarak çalışmak epey farklılık gösterebilir. Bir biyoteknoloji şirketi, bir bulut hizmeti sağlayıcısından farklıdır. Şirketin alanına özgü konuları anlamak için biraz zaman ayırın ve öğrenmeye istekli olduğunuzu gösterin. Ancak temelde herkes verilerle çalışır ve sektör ne olursa olsun veriye benzer şekillerde yaklaşılır.
- Reddedilmelerle başa çıkma. Bu, günümüzün rekabetçi iş piyasasının bir gerçeği. Hatalarınızdan ders çıkarın, yeni beceriler öğrenmeye devam edin ve mevcutları geliştirin. Özellikle veri bilimi alanında çalışan daha kıdemli çalışanlardan tavsiye isteyin. Bir role başvurunuz olumsuz sonuçlanırsa mülakatçıdan geri bildirim de isteyebilirsiniz.
Sonuç
Başardınız! Bu sık sorulan SQL JOIN soruları listesinin, hazırlanmanıza ve mülakatı başarıyla geçmenize yardımcı olmasını dilerim. Yaklaşan SQL mülakatlarınızda bol şans.
Bu arada, SQL becerileriniz konusunda daha fazla güvene ihtiyaç duyuyorsanız, DataCamp yanınızda. Aşağıda, becerilerinizi geliştirmenize yardımcı olacak bazı kurs, yol ve özel SQL materyallerimizin bir listesini bulabilirsiniz:

Serbest çalışan bir veri analistiyim; dünya genelinde şirketler ve kuruluşlarla veri bilimi projelerinde iş birliği yapıyorum. Ayrıca 2+ yıllık deneyime sahip bir veri bilimi eğitmeniyim. Düzenli olarak İngilizce ve İspanyolca veri bilimiyle ilgili makaleler yazıyorum; bunların bir kısmı DataCamp, Towards Data Science ve Analytics Vidhya gibi köklü internet sitelerinde yayımlandı. Siyaset bilimi ve hukuk geçmişine sahip bir veri bilimci olarak amacım, kamu politikası, hukuk ve teknolojinin kesişiminde çalışmak; fikirlerin gücünden yararlanarak özellikle iklim krizi olmak üzere acil sorunların üstesinden gelmemize yardımcı olabilecek yenilikçi çözümler ve anlatılar geliştirmek. Kendimi otodidakt bir kişi, sürekli öğrenen ve disiplinlerarasılığın güçlü bir savunucusu olarak görüyorum. Yeni şeyler öğrenmek için asla geç değildir.
