Menu
CoddyTech

Podstawowe JOIN — część 1

Część sekcji Podstawy ścieżki SQL w Coddy. Lekcja 43 z 72.

Jak dotąd zajmowaliśmy się problemami dotyczącymi pojedynczej tabeli. Teraz przyjrzymy się, jak obsługiwać wiele tabel.

Załóżmy, że mamy następujące tabele:

kursy

course_idlecturer_id
11
21
32

lecturers

lecturer_idname
1Jhonas
2Malidos

Zadanie polega na wyświetleniu każdego kursu wraz z imieniem i nazwiskiem odpowiedniego wykładowcy.

Można to osiągnąć na dwa sposoby. W każdej opcji dopasowujemy każdy wiersz jednej tabeli do wiersza z drugiej tabeli. Sprawdzamy warunek, który musi zostać spełniony, a jeśli jest spełniony, łączymy oba wiersze w jeden. Oczekiwany wynik dla obu opcji:

course_idlecturer_name
1Jhonas
2Jhonas
3Malidos

Opcja 1:

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

Tutaj zapisujemy dwie tabele po słowie kluczowym FROM, a w klauzuli WHERE wymagamy, aby wartość lecturer_id w obu rekordach była taka sama. W klauzuli SELECT zapisujemy teraz table.column, aby baza danych wiedziała, z której tabeli pobrać kolumnę.

Opcja 2:

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

Zamiast WHERE używamy JOIN table ON condition

Obie opcje dają ten sam wynik i nazywane są złączeniem wewnętrznym: łączone są tylko pary wierszy spełniające warunek.

challenge icon

Wyzwanie

Łatwy

Dostępne tabele i kolumny:

  • grades: course_id, student_id, grade
  • students: id, name

Utwórz zapytanie, które pobiera student_name, course_id, student_id i grade w jednej tabeli. Uporządkuj wyniki według oceny rosnąco.

Spróbuj swoich sił

-- Wypisz kolumny wskazane w zadaniu, używając wskazanego w nim aliasu
SELECT ____
FROM students, grades
-- Zachowaj tylko te pary wierszy, w których obie tabele opisują tę samą osobę
WHERE ____
ORDER BY grade
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online SQL