Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Чим JOIN відрізняється від підзапиту?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)`JOIN` і підзапит (subquery) - обидва способи отримати дані з кількох таблиць, але працюють по-різному: `JOIN` фізично з'єднує рядки з двох таблиць за спільним полем і повертає одну загальну таблицю, а підзапит виконується окремо, і його результат використовується як умова чи набір значень для основного запиту. **Ключове:** `JOIN` варто використовувати, щоб показати пов'язані дані разом і коли важлива швидкість; підзапит - коли треба обчислити проміжний результат (суму, максимум, список id) без з'єднання рядок-до-рядка.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення`JOIN` і **підзапит (subquery)** - обидва способи отримати дані з кількох таблиць, але вони працюють **по-різному** й застосовуються в різних ситуаціях. ### 1. JOIN - об'єднує таблиці "вшир" `JOIN` фізично з'єднує рядки з двох таблиць за спільним полем і повертає **одну загальну таблицю**. Усі потрібні дані видно одразу в одному запиті. ```sql SELECT users.name, orders.amount FROM users JOIN orders ON users.id = orders.user_id; ``` Кожен рядок містить дані і з `users`, і з `orders`. **Коли використовувати:** - потрібно показати пов'язані дані разом (наприклад, користувач + замовлення); - важлива швидкість - `JOIN` зазвичай працює швидше; - потрібно вивести кілька полів з обох таблиць. ### 2. Підзапит - дістає дані "вглиб" Підзапит - це **запит усередині іншого запиту**. Він виконується окремо, а його результат використовується як умова чи таблиця. ```sql SELECT name FROM users WHERE id IN (SELECT user_id FROM orders WHERE amount > 1000); ``` Спочатку виконується підзапит у дужках (знаходить user_id з великими замовленнями), а потім основний запит обирає імена цих користувачів. **Коли використовувати:** - потрібно обчислити проміжний результат (наприклад, суму, максимум, список id); - немає потреби з'єднувати дані рядок-до-рядка; - важлива читабельність або логічна ізоляція частин запиту. ### 3. Головна відмінність | Характеристика | JOIN | Підзапит | |---|---|---| | Що робить | Об'єднує таблиці за полями | Вставляє результат одного запиту в інший | | Як працює | "Вшир" - з'єднує рядки | "Вглиб" - використовує вкладені результати | | Повертає | Одну об'єднану таблицю | Проміжне значення або набір | | Коли використовувати | Для показу пов'язаних даних | Для фільтрації, агрегації, перевірки умов | **Підсумок:** - `JOIN` з'єднує таблиці напряму, показуючи дані з обох. - Підзапит працює як «вбудований фільтр» чи обчислення. - Обидва інструменти розв'язують подібні задачі, але `JOIN` - для об'єднання рядків, а підзапит - для логічних перевірок і проміжних обчислень.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.