Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Приєднання 2 Таблиць | Об'єднання Таблиць
Розширений Рівень SQL
course content

Зміст курсу

Розширений Рівень SQL

Розширений Рівень SQL

1. Групування
2. Вкладені Запити
3. Об'єднання Таблиць
4. DDL та DML в SQL

book
Приєднання 2 Таблиць

Чудово! Ми привернули увагу компанії, яка володіє невеликим інтернет-магазином. Вони мають 2 таблиці, які пов'язані між собою. Перша таблиця містить інформацію про товари, що продаються у інтернет-магазині.

Ось як виглядає таблиця product:

Друга таблиця містить категорії продуктів на вебсайті разом із коротким описом для кожної категорії.

Ось як виглядає таблиця category:

Ми працюємо з цими двома таблицями.

Перше завдання: об'єднати ці 2 таблиці та переглянути кількість продуктів у кожній категорії. Для цього ми використаємо оператор JOIN.

Давайте зробимо перерву від основного завдання та зрозуміємо, що таке оператор JOIN і як його використовувати.

Щоб об'єднати 2 таблиці, вони повинні мати спільну колонку між собою. Розглянемо використання JOIN, на прикладі таблиць employees і department. Нагадаю вам, що їх спільною колонкою є employees.department та departments.name.

Примітка

Зверніть увагу, як я написав колонки з цих таблиць. Спочатку я пишу назву таблиці, потім ставлю крапку і назву колонки. Коли ми використовуємо більш ніж одну таблицю у запиті, нам потрібно вказати таблицю, з якої ми беремо колонку, щоб код був читабельним. Також, у випадку коли таблиці мають колонки однакових назв, нам потрібно, щоб SQL зрозуміло, до якої таблиці та колонки ми звертаємося.

Поставимо перед собою завдання отримати загальну заробітну плату працівників в кожному типі відділу (tech/non-tech).

Запит для виконання цього завдання буде виглядати так:

1234
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
copy

Давайте крок за кроком зрозуміємо, що ми зробили і як ми використовували JOIN:

  1. У розділі SELECT ми вказуємо колонки, які нам потрібно отримати з двох таблиць, зазначаючи назву таблиці, до якої належить колонка;
  2. У розділі JOIN ми вказуємо таблицю, яку хочемо приєднати, а потім вказуємо спільну колонку. У нашому випадку, це employees.department та department.name;
  3. Потім ми агрегуємо дані за type (оскільки у розділі SELECT ми маємо агрегатну функцію SUM() для знаходження загальної заробітної плати) та отримуємо цікавий нам результат.

Запит може виглядати складним, отже подивімось на загальний синтаксис використання JOIN:

Таким чином, ми можемо об'єднувати таблиці та отримувати бажаний результат, навіть якщо інформація розкидана по декількох таблицях.

Примітка

На відміну від клавзи UNION, конструкція JOIN дозволяє нам цілком об'єднувати таблиці, не обмежуючись лише спільними стовпцями між ними. Також варто зауважити, що під час використання конструкції JOIN, нам не потрібно використовувати підзапити з різними клавзами, як це робимо з клавзою UNION.

Тепер давайте повернемося до нашого завдання і закріпимо наші знання за допомогою практики:

Завдання
test

Swipe to show code editor

Ваше завдання полягає у тому, щоб об'єднати дві таблиці: category та product. Спільні стовпці цих двох таблиць: product.category_id і category.id. Ваше завдання - знайти загальну кількість продуктів у кожній категорії. Для цього вам потрібно порахувати суму стовпця product.amount. Використовуйте псевдонім total_amount для цього стовпця! На завершення вашого запиту відсортуйте результат за стовпцем total_amount у порядку зростання.

У відповіді у вас має бути 2 стовпці: category.name і total.amount.

Успіхів!

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 1
toggle bottom row

book
Приєднання 2 Таблиць

Чудово! Ми привернули увагу компанії, яка володіє невеликим інтернет-магазином. Вони мають 2 таблиці, які пов'язані між собою. Перша таблиця містить інформацію про товари, що продаються у інтернет-магазині.

Ось як виглядає таблиця product:

Друга таблиця містить категорії продуктів на вебсайті разом із коротким описом для кожної категорії.

Ось як виглядає таблиця category:

Ми працюємо з цими двома таблицями.

Перше завдання: об'єднати ці 2 таблиці та переглянути кількість продуктів у кожній категорії. Для цього ми використаємо оператор JOIN.

Давайте зробимо перерву від основного завдання та зрозуміємо, що таке оператор JOIN і як його використовувати.

Щоб об'єднати 2 таблиці, вони повинні мати спільну колонку між собою. Розглянемо використання JOIN, на прикладі таблиць employees і department. Нагадаю вам, що їх спільною колонкою є employees.department та departments.name.

Примітка

Зверніть увагу, як я написав колонки з цих таблиць. Спочатку я пишу назву таблиці, потім ставлю крапку і назву колонки. Коли ми використовуємо більш ніж одну таблицю у запиті, нам потрібно вказати таблицю, з якої ми беремо колонку, щоб код був читабельним. Також, у випадку коли таблиці мають колонки однакових назв, нам потрібно, щоб SQL зрозуміло, до якої таблиці та колонки ми звертаємося.

Поставимо перед собою завдання отримати загальну заробітну плату працівників в кожному типі відділу (tech/non-tech).

Запит для виконання цього завдання буде виглядати так:

1234
SELECT department.type, SUM(employees.salary) AS total_salary FROM employees JOIN department ON employees.department = department.name GROUP BY department.type
copy

Давайте крок за кроком зрозуміємо, що ми зробили і як ми використовували JOIN:

  1. У розділі SELECT ми вказуємо колонки, які нам потрібно отримати з двох таблиць, зазначаючи назву таблиці, до якої належить колонка;
  2. У розділі JOIN ми вказуємо таблицю, яку хочемо приєднати, а потім вказуємо спільну колонку. У нашому випадку, це employees.department та department.name;
  3. Потім ми агрегуємо дані за type (оскільки у розділі SELECT ми маємо агрегатну функцію SUM() для знаходження загальної заробітної плати) та отримуємо цікавий нам результат.

Запит може виглядати складним, отже подивімось на загальний синтаксис використання JOIN:

Таким чином, ми можемо об'єднувати таблиці та отримувати бажаний результат, навіть якщо інформація розкидана по декількох таблицях.

Примітка

На відміну від клавзи UNION, конструкція JOIN дозволяє нам цілком об'єднувати таблиці, не обмежуючись лише спільними стовпцями між ними. Також варто зауважити, що під час використання конструкції JOIN, нам не потрібно використовувати підзапити з різними клавзами, як це робимо з клавзою UNION.

Тепер давайте повернемося до нашого завдання і закріпимо наші знання за допомогою практики:

Завдання
test

Swipe to show code editor

Ваше завдання полягає у тому, щоб об'єднати дві таблиці: category та product. Спільні стовпці цих двох таблиць: product.category_id і category.id. Ваше завдання - знайти загальну кількість продуктів у кожній категорії. Для цього вам потрібно порахувати суму стовпця product.amount. Використовуйте псевдонім total_amount для цього стовпця! На завершення вашого запиту відсортуйте результат за стовпцем total_amount у порядку зростання.

У відповіді у вас має бути 2 стовпці: category.name і total.amount.

Успіхів!

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 1
Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
We're sorry to hear that something went wrong. What happened?
some-alt