LEFT, RIGHT та INNER JOIN-и
Інтернет-магазин замовив більше товарів у постачальника, оскільки запаси на складі закінчувалися. Це означає, що у нас є трохи вільного часу до прибуття поставки.
Скористаймося цією можливістю, щоб дізнатися щось нове! До цього часу ви використовували стандартний JOIN
у SQL, але існують й інші типи об'єднань таблиць.
Ось 4 основні типи об'єднань таблиць:
INNER JOIN
: Повертає рядки з відповідними значеннями в обох таблицях. Це те саме, що й стандартний JOIN, який ви використовували;
LEFT JOIN
: Повертає всі рядки з лівої таблиці та відповідні рядки з правої таблиці. Якщо відповідностей немає, повертаєNULL
для правої таблиці;
RIGHT JOIN
: Повертає всі рядки з правої таблиці та відповідні рядки з лівої таблиці. Якщо відповідностей немає, повертаєNULL
для лівої таблиці;
FULL JOIN
: Повертає всі рядки, якщо є збіг хоча б в одній з таблиць. Якщо збігів немає, повертаєNULL
для відсутніх значень в іншій таблиці.
Перш ніж перейти до використання цих типів об'єднань, розглянемо дві таблиці, з якими будемо працювати. Вони містять інформацію про курси та студентів, які на них записані.
courses
:
enrollments
:
Синтаксис використання цих типів об'єднань насправді простий. Замість звичного JOIN
або INNER JOIN
, просто вкажіть LEFT JOIN
або інший тип JOIN
:
SELECT table1.column, table2.column
FROM table1 -- this is the LEFT table
LEFT JOIN table 2 -- this is the RIGHT table
ON table1.common_column = table2.common_column
Swipe to start coding
Напишіть запит для отримання списку всіх курсів та студентів, які на них записані, включаючи курси без зареєстрованих студентів.
Потрібно отримати такі стовпці у такому порядку:
courses.course_id,
courses.course_name,
courses.description,
enrollments.student_name,
enrollments.enrollment_date
Використайте відповідний тип JOIN
для виконання цього завдання!
Короткі інструкції
- Отримайте стовпці
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
таenrollments.enrollment_date
з таблиціcourses
. - Використайте LEFT JOIN для приєднання таблиці
enrollments
. - Спільний стовпець для обох таблиць —
courses.course_id = enrollments.course_id
.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain the differences between each type of join with examples?
How do I decide which type of join to use in a specific scenario?
Can you show how these joins would work with the provided `courses` and `enrollments` tables?
Awesome!
Completion rate improved to 4
LEFT, RIGHT та INNER JOIN-и
Свайпніть щоб показати меню
Інтернет-магазин замовив більше товарів у постачальника, оскільки запаси на складі закінчувалися. Це означає, що у нас є трохи вільного часу до прибуття поставки.
Скористаймося цією можливістю, щоб дізнатися щось нове! До цього часу ви використовували стандартний JOIN
у SQL, але існують й інші типи об'єднань таблиць.
Ось 4 основні типи об'єднань таблиць:
INNER JOIN
: Повертає рядки з відповідними значеннями в обох таблицях. Це те саме, що й стандартний JOIN, який ви використовували;
LEFT JOIN
: Повертає всі рядки з лівої таблиці та відповідні рядки з правої таблиці. Якщо відповідностей немає, повертаєNULL
для правої таблиці;
RIGHT JOIN
: Повертає всі рядки з правої таблиці та відповідні рядки з лівої таблиці. Якщо відповідностей немає, повертаєNULL
для лівої таблиці;
FULL JOIN
: Повертає всі рядки, якщо є збіг хоча б в одній з таблиць. Якщо збігів немає, повертаєNULL
для відсутніх значень в іншій таблиці.
Перш ніж перейти до використання цих типів об'єднань, розглянемо дві таблиці, з якими будемо працювати. Вони містять інформацію про курси та студентів, які на них записані.
courses
:
enrollments
:
Синтаксис використання цих типів об'єднань насправді простий. Замість звичного JOIN
або INNER JOIN
, просто вкажіть LEFT JOIN
або інший тип JOIN
:
SELECT table1.column, table2.column
FROM table1 -- this is the LEFT table
LEFT JOIN table 2 -- this is the RIGHT table
ON table1.common_column = table2.common_column
Swipe to start coding
Напишіть запит для отримання списку всіх курсів та студентів, які на них записані, включаючи курси без зареєстрованих студентів.
Потрібно отримати такі стовпці у такому порядку:
courses.course_id,
courses.course_name,
courses.description,
enrollments.student_name,
enrollments.enrollment_date
Використайте відповідний тип JOIN
для виконання цього завдання!
Короткі інструкції
- Отримайте стовпці
courses.course_id
,courses.course_name
,courses.description
,enrollments.student_name
таenrollments.enrollment_date
з таблиціcourses
. - Використайте LEFT JOIN для приєднання таблиці
enrollments
. - Спільний стовпець для обох таблиць —
courses.course_id = enrollments.course_id
.
Рішення
Дякуємо за ваш відгук!
single