Об'єднання Двох Таблиць
Ви привернули увагу компанії, яка володіє невеликим інтернет-магазином. У них є 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 без підзапитів.
Дякуємо за ваш відгук!
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
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат