Функції JOIN і INNER JOIN повернуть однаковий результат. INNER — типовий тип об’єднання для JOIN , тож коли ви пишете JOIN, синтаксичний аналізатор фактично записує INNER JOIN.
Внутрішнє з’єднання проти зовнішнього з’єднання: порівняльна таблиця
Внутрішнє приєднання | Зовнішнє об'єднання |
---|---|
Усі рядки матимуть будь-яке значення, оскільки вони взяті з таблиці з однаковими записами. | У зовнішньому об’єднанні деякі записи можуть повертати нульове значення. |
Альтернатив або варіантів внутрішнього об'єднання немає. | Зовнішнє об’єднання може бути лівим, правим або повним об’єднанням. |
У MySQL, ХРЕСНЕ З'ЄДНАННЯ синтаксично еквівалентний INNER JOIN; вони можуть замінювати один одного. У стандартному SQL вони нееквівалентні. INNER JOIN використовується з пропозицією ON; В іншому випадку використовується CROSS JOIN.
Залежно від ваших вимог, використання INNER JOIN може бути більш ефективним, оскільки воно робить лише один прохід через дані, тоді як корельований підзапит має виконуватися для кожного рядка у зовнішньому запиті. Ви хочете дізнатися чисельність населення найбільшого міста кожної країни світу у 2017 році.
Речення Inner Join у SQL Server створює нову таблицю (не фізичну), об’єднуючи рядки, які мають відповідні значення, у двох або більше таблицях. Це об’єднання базується на логічному зв’язку (або спільному полі) між таблицями та використовується для отримання даних, які з’являються в обох таблицях.
Підзапити також може бути корисним у випадках, коли у вас можуть виникнути проблеми зі створенням об’єднання, наприклад у запитах, які використовують предикат NOT EXISTS. Підзапити можуть повертати лише один стовпець. Підзапити дозволені лише як аргументи порівнянь, речень IN або EXISTS.