Menu
Coddy logo textTech

Basic Join Part 1

Coddy'nin SQL Journey'sinin Temeller bölümünün bir parçası — ders 43 / 72.

Şu ana kadar tek bir tabloyla ilgili problemleri ele aldık. Şimdi birden fazla tabloyu nasıl işleyeceğimizi inceleyeceğiz.

Aşağıdaki tablolara sahip olduğumuzu varsayalım:

courses

course_idlecturer_id
11
21
32

lecturers

lecturer_idname
1Jhonas
2Malidos

Görev, her dersi ilgili öğretim görevlisinin adıyla sunmaktır.

Bunu gerçekleştirmenin iki yolu vardır. Her iki seçenek için de bir tablodaki her satırı diğeriyle eşleştiririz. Karşılanması gereken bir koşulu kontrol ederiz ve koşul sağlanırsa iki satırı tek bir satırda birleştiririz. Her iki seçenek için de istenen sonuç:

course_idlecturer_name
1Jhonas
2Jhonas
3Malidos

Seçenek 1:

SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses, lecturers
WHERE courses.lecturer_id = lecturers.lecturer_id

Burada FROM anahtar kelimesinde iki tablo yazıyoruz ve WHERE yan cümlesinde her iki kaydın lecturer_id değerinin aynı olması gerektiğini belirtiyoruz. SELECT yan cümlesinde artık table.column yazıyoruz, böylece veritabanı sütunu nereden alacağını bilecektir.

Seçenek 2:

SELECT courses.course_id, lecturers.name AS lecturer_name
FROM courses
JOIN lecturers ON courses.lecturer_id = lecturers.lecturer_id

WHERE yerine JOIN table ON condition kullanırız

Bu birleştirme türüne iç birleştirme (inner join) de denir.

challenge icon

Görev

Kolay

Kullanılabilir tablolar ve sütunlar:

  • <strong>grades</strong>: <strong>course_id</strong>, <strong>student_id</strong>, <strong>grade</strong>
  • <strong>students</strong>: <strong>id</strong>, <strong>name</strong>

student_name, course_id, student_id ve grade bilgilerini tek bir tabloda getiren bir sorgu oluşturun. Sonucu grade sütununa göre artan sırada sıralayın.

Kendin dene

-- Görevin istediği sütunları, istediği takma adı kullanarak listele
SELECT ____
FROM students, grades
-- Yalnızca her iki tablonun da aynı kişiyi tanımladığı satır çiftlerini tut
WHERE ____
ORDER BY grade
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler