single
З'єднання Двох Таблиць
Свайпніть щоб показати меню
Ви привернули увагу компанії, яка володіє невеликим інтернет-магазином. У них є 2 таблиці, які пов'язані між собою. Перша таблиця містить інформацію про товари, що продаються в інтернет-магазині.
Ось як виглядає таблиця product:
Друга таблиця містить категорії товарів на сайті, а також короткий опис для кожної категорії.
Ось як виглядає таблиця category:
Ваше перше завдання — об'єднати ці дві таблиці, щоб дізнатися, скільки продуктів у кожній категорії. Для цього потрібно використати оператор JOIN.
Перш ніж перейти до завдання, розглянемо, що таке оператор JOIN і як він працює.
JOIN у SQL — це операція, яка об'єднує рядки з двох або більше таблиць на основі пов'язаного між ними стовпця. JOIN дозволяє отримувати дані з кількох таблиць в одному запиті, що спрощує аналіз і обробку пов'язаних даних.
Щоб об'єднати дві таблиці, вони повинні мати спільний стовпець. Для таблиць цим спільним зв'язком є product.category_id та category.id.
При написанні стовпців з цих таблиць починайте з назви таблиці, додайте крапку, а потім назву стовпця. Це допомагає зробити код зрозумілішим, особливо коли в таблицях є стовпці з однаковими назвами. Це точно вказує SQL, з якої таблиці і який стовпець ви маєте на увазі.
Ось як працює JOIN на практиці. Уявіть, що потрібно отримати середню ціну товарів для кожної назви категорії.
Запит для цього виглядає так:
1234SELECT category.name, AVG(product.price) AS average_price FROM product JOIN category ON product.category_id = category.id GROUP BY category.name
Ось пояснення того, як використовується JOIN у цьому запиті:
- У частині
SELECTперелічені стовпці, які потрібні з обох таблиць, із зазначенням імені таблиці для зрозумілості; - У частині
JOINвказується таблиця для об'єднання (category) та спільні стовпці, які їх пов'язують (product.category_id = category.id); - Далі дані групуються за
category.name, щоб обчислити середню ціну за допомогою функціїAVG().
Якщо це здається складним, ось простий синтаксис використання JOIN:
SELECT table1.column, table2.column
FROM table1
JOIN table2 ON table1.common_column = table2.common_column
На відміну від оператора 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.
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат