Зміст курсу
Розширений Рівень SQL
Розширений Рівень SQL
Приєднання 2 Таблиць
Чудово! Ми привернули увагу компанії, яка володіє невеликим інтернет-магазином. Вони мають 2 таблиці, які пов'язані між собою. Перша таблиця містить інформацію про товари, що продаються у інтернет-магазині.
Ось як виглядає таблиця product
:
Друга таблиця містить категорії продуктів на вебсайті разом із коротким описом для кожної категорії.
Ось як виглядає таблиця category
:
Ми працюємо з цими двома таблицями.
Перше завдання: об'єднати ці 2 таблиці та переглянути кількість продуктів у кожній категорії. Для цього ми використаємо оператор JOIN
.
Давайте зробимо перерву від основного завдання та зрозуміємо, що таке оператор JOIN
і як його використовувати.
Щоб об'єднати 2 таблиці, вони повинні мати спільну колонку між собою. Розглянемо використання JOIN
, на прикладі таблиць employees
і department
. Нагадаю вам, що їх спільною колонкою є employees.department
та departments.name
.
Примітка
Зверніть увагу, як я написав колонки з цих таблиць. Спочатку я пишу назву таблиці, потім ставлю крапку і назву колонки. Коли ми використовуємо більш ніж одну таблицю у запиті, нам потрібно вказати таблицю, з якої ми беремо колонку, щоб код був читабельним. Також, у випадку коли таблиці мають колонки однакових назв, нам потрібно, щоб SQL зрозуміло, до якої таблиці та колонки ми звертаємося.
Поставимо перед собою завдання отримати загальну заробітну плату працівників в кожному типі відділу (tech
/non-tech
).
Запит для виконання цього завдання буде виглядати так:
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Давайте крок за кроком зрозуміємо, що ми зробили і як ми використовували JOIN
:
- У розділі
SELECT
ми вказуємо колонки, які нам потрібно отримати з двох таблиць, зазначаючи назву таблиці, до якої належить колонка; - У розділі
JOIN
ми вказуємо таблицю, яку хочемо приєднати, а потім вказуємо спільну колонку. У нашому випадку, цеemployees.department
таdepartment.name
; - Потім ми агрегуємо дані за
type
(оскільки у розділіSELECT
ми маємо агрегатну функціюSUM()
для знаходження загальної заробітної плати) та отримуємо цікавий нам результат.
Запит може виглядати складним, отже подивімось на загальний синтаксис використання JOIN
:
Таким чином, ми можемо об'єднувати таблиці та отримувати бажаний результат, навіть якщо інформація розкидана по декількох таблицях.
Примітка
На відміну від клавзи
UNION
, конструкціяJOIN
дозволяє нам цілком об'єднувати таблиці, не обмежуючись лише спільними стовпцями між ними. Також варто зауважити, що під час використання конструкціїJOIN
, нам не потрібно використовувати підзапити з різними клавзами, як це робимо з клавзоюUNION
.
Тепер давайте повернемося до нашого завдання і закріпимо наші знання за допомогою практики:
Swipe to show code editor
Ваше завдання полягає у тому, щоб об'єднати дві таблиці: category
та product
. Спільні стовпці цих двох таблиць: product.category_id
і category.id
. Ваше завдання - знайти загальну кількість продуктів у кожній категорії. Для цього вам потрібно порахувати суму стовпця product.amount
. Використовуйте псевдонім total_amount
для цього стовпця!
На завершення вашого запиту відсортуйте результат за стовпцем total_amount
у порядку зростання.
У відповіді у вас має бути 2 стовпці: category.name
і total.amount
.
Успіхів!
Дякуємо за ваш відгук!
Приєднання 2 Таблиць
Чудово! Ми привернули увагу компанії, яка володіє невеликим інтернет-магазином. Вони мають 2 таблиці, які пов'язані між собою. Перша таблиця містить інформацію про товари, що продаються у інтернет-магазині.
Ось як виглядає таблиця product
:
Друга таблиця містить категорії продуктів на вебсайті разом із коротким описом для кожної категорії.
Ось як виглядає таблиця category
:
Ми працюємо з цими двома таблицями.
Перше завдання: об'єднати ці 2 таблиці та переглянути кількість продуктів у кожній категорії. Для цього ми використаємо оператор JOIN
.
Давайте зробимо перерву від основного завдання та зрозуміємо, що таке оператор JOIN
і як його використовувати.
Щоб об'єднати 2 таблиці, вони повинні мати спільну колонку між собою. Розглянемо використання JOIN
, на прикладі таблиць employees
і department
. Нагадаю вам, що їх спільною колонкою є employees.department
та departments.name
.
Примітка
Зверніть увагу, як я написав колонки з цих таблиць. Спочатку я пишу назву таблиці, потім ставлю крапку і назву колонки. Коли ми використовуємо більш ніж одну таблицю у запиті, нам потрібно вказати таблицю, з якої ми беремо колонку, щоб код був читабельним. Також, у випадку коли таблиці мають колонки однакових назв, нам потрібно, щоб SQL зрозуміло, до якої таблиці та колонки ми звертаємося.
Поставимо перед собою завдання отримати загальну заробітну плату працівників в кожному типі відділу (tech
/non-tech
).
Запит для виконання цього завдання буде виглядати так:
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
Давайте крок за кроком зрозуміємо, що ми зробили і як ми використовували JOIN
:
- У розділі
SELECT
ми вказуємо колонки, які нам потрібно отримати з двох таблиць, зазначаючи назву таблиці, до якої належить колонка; - У розділі
JOIN
ми вказуємо таблицю, яку хочемо приєднати, а потім вказуємо спільну колонку. У нашому випадку, цеemployees.department
таdepartment.name
; - Потім ми агрегуємо дані за
type
(оскільки у розділіSELECT
ми маємо агрегатну функціюSUM()
для знаходження загальної заробітної плати) та отримуємо цікавий нам результат.
Запит може виглядати складним, отже подивімось на загальний синтаксис використання JOIN
:
Таким чином, ми можемо об'єднувати таблиці та отримувати бажаний результат, навіть якщо інформація розкидана по декількох таблицях.
Примітка
На відміну від клавзи
UNION
, конструкціяJOIN
дозволяє нам цілком об'єднувати таблиці, не обмежуючись лише спільними стовпцями між ними. Також варто зауважити, що під час використання конструкціїJOIN
, нам не потрібно використовувати підзапити з різними клавзами, як це робимо з клавзоюUNION
.
Тепер давайте повернемося до нашого завдання і закріпимо наші знання за допомогою практики:
Swipe to show code editor
Ваше завдання полягає у тому, щоб об'єднати дві таблиці: category
та product
. Спільні стовпці цих двох таблиць: product.category_id
і category.id
. Ваше завдання - знайти загальну кількість продуктів у кожній категорії. Для цього вам потрібно порахувати суму стовпця product.amount
. Використовуйте псевдонім total_amount
для цього стовпця!
На завершення вашого запиту відсортуйте результат за стовпцем total_amount
у порядку зростання.
У відповіді у вас має бути 2 стовпці: category.name
і total.amount
.
Успіхів!
Дякуємо за ваш відгук!