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

Об'єднання Двох Таблиць

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

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

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

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

Ваше перше завдання — об'єднати ці дві таблиці, щоб дізнатися, скільки продуктів у кожній категорії. Для цього використовується оператор JOIN.

Перш ніж перейти до завдання, розглянемо, що таке оператор JOIN і як він працює.

Note
Визначення

JOIN у SQL — це операція, яка об'єднує рядки з двох або більше таблиць на основі пов'язаного між ними стовпця. JOIN дозволяє отримувати дані з кількох таблиць в одному запиті, що спрощує аналіз і обробку пов'язаних даних.

Щоб об'єднати дві таблиці, вони повинні мати спільний стовпець. Для таблиць таким спільним зв'язком є product.category_id та category.id.

Note
Примітка

При записі стовпців з цих таблиць починайте з імені таблиці, додайте крапку, а потім ім'я стовпця. Це допомагає зробити код зрозумілим, особливо коли в таблицях є стовпці з однаковими іменами. Це точно вказує SQL, з якої таблиці і який стовпець ви маєте на увазі.

Ось як працює JOIN на практиці. Уявіть, що потрібно отримати середню ціну товарів для кожної назви категорії.

Запит для цього виглядає так:

1234
SELECT category.name, AVG(product.price) AS average_price FROM product JOIN category ON product.category_id = category.id GROUP BY category.name

Ось пояснення використання JOIN у нашому запиті:

  1. У частині SELECT перелічені стовпці, які потрібні з обох таблиць, із зазначенням імені таблиці для ясності;
  2. У частині JOIN вказано таблицю для об'єднання (category) та спільні стовпці, що їх пов'язують (product.category_id = category.id);
  3. Далі дані групуються за category.name для обчислення середньої ціни за допомогою функції AVG().

Якщо це здається складним, ось проста синтаксична конструкція для використання JOIN:

SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Note
Примітка

На відміну від оператора UNION, оператор JOIN дозволяє об'єднувати цілі таблиці, а не лише спільні стовпці. Зверніть увагу, що для використання UNION підзапити не є обов'язковими — вони потрібні лише у випадках, коли потрібно відфільтрувати або згрупувати об'єднаний набір результатів. У багатьох випадках можна використовувати UNION безпосередньо між двома операторами SELECT без підзапитів.

Все було зрозуміло?

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

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

Секція 1. Розділ 15
single

single

Об'єднання Двох Таблиць

Свайпніть щоб показати меню

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

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

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

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

Ваше перше завдання — об'єднати ці дві таблиці, щоб дізнатися, скільки продуктів у кожній категорії. Для цього використовується оператор JOIN.

Перш ніж перейти до завдання, розглянемо, що таке оператор JOIN і як він працює.

Note
Визначення

JOIN у SQL — це операція, яка об'єднує рядки з двох або більше таблиць на основі пов'язаного між ними стовпця. JOIN дозволяє отримувати дані з кількох таблиць в одному запиті, що спрощує аналіз і обробку пов'язаних даних.

Щоб об'єднати дві таблиці, вони повинні мати спільний стовпець. Для таблиць таким спільним зв'язком є product.category_id та category.id.

Note
Примітка

При записі стовпців з цих таблиць починайте з імені таблиці, додайте крапку, а потім ім'я стовпця. Це допомагає зробити код зрозумілим, особливо коли в таблицях є стовпці з однаковими іменами. Це точно вказує SQL, з якої таблиці і який стовпець ви маєте на увазі.

Ось як працює JOIN на практиці. Уявіть, що потрібно отримати середню ціну товарів для кожної назви категорії.

Запит для цього виглядає так:

1234
SELECT category.name, AVG(product.price) AS average_price FROM product JOIN category ON product.category_id = category.id GROUP BY category.name

Ось пояснення використання JOIN у нашому запиті:

  1. У частині SELECT перелічені стовпці, які потрібні з обох таблиць, із зазначенням імені таблиці для ясності;
  2. У частині JOIN вказано таблицю для об'єднання (category) та спільні стовпці, що їх пов'язують (product.category_id = category.id);
  3. Далі дані групуються за category.name для обчислення середньої ціни за допомогою функції AVG().

Якщо це здається складним, ось проста синтаксична конструкція для використання JOIN:

SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
Note
Примітка

На відміну від оператора UNION, оператор JOIN дозволяє об'єднувати цілі таблиці, а не лише спільні стовпці. Зверніть увагу, що для використання UNION підзапити не є обов'язковими — вони потрібні лише у випадках, коли потрібно відфільтрувати або згрупувати об'єднаний набір результатів. У багатьох випадках можна використовувати UNION безпосередньо між двома операторами SELECT без підзапитів.

Завдання

Проведіть, щоб почати кодувати

Потрібно об'єднати дві таблиці: category та product. Спільними стовпцями для цих таблиць є product.category_id та category.id.

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

Використовуйте псевдонім total_amount для цього стовпця. Наприкінці запиту відсортуйте результат за стовпцем total_amount у порядку зростання.

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

Коротка інструкція

  • Отримайте стовпець category.name та суму стовпця product.amount з таблиці product.
  • Присвойте псевдонім total_amount другому стовпцю.
  • Об'єднайте таблицю category за допомогою оператора JOIN.
  • Зіставте таблиці за спільним стовпцем product.category_id = category.id.
  • Згрупуйте результати за category.name.
  • Відсортуйте результати за total_amount.

Рішення

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

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

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

Секція 1. Розділ 15
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

some-alt