Яка різниця між лівим і правим об’єднаннями в SQL Server?

Різні типи SQL JOIN (INNER) JOIN : повертає записи, які мають відповідні значення в обох таблицях. LEFT (OUTER) JOIN : повертає всі записи з лівої таблиці та відповідні записи з правої таблиці. ПРАВЕ (ЗОВНІШНЄ) ОБ'ЄДНАННЯ: повертає всі записи з правої таблиці та відповідні записи з лівої таблиці.

LEFT JOIN повертає лише невідповідні рядки з лівої таблиці, а також відповідні рядки в обох таблицях. RIGHT JOIN повертає лише невідповідні рядки з правої таблиці, а також відповідні рядки в обох таблицях. FULL OUTER JOIN повертає невідповідні рядки з обох таблиць, а також збігаються рядки в обох таблицях.

Принаймні в MySQL праве об’єднання спрощено до лівого об’єднання (ref). b праве з'єднання a розглядається як ліве з'єднання b за лаштунками. Але так, доки немає ORDER BY, сервер може повертати рядки в будь-якому порядку.

Щоб отримати однаковий результат між запитом на об’єднання зліва та справа, вам потрібно змінити як порядок таблиці, так і тип об’єднання. Але ви отримаєте інший результат, якщо змінити лише один із них. Отже, в основному ви використовуєте ліве проти правого об’єднання залежно від того, як ви хочете, щоб виглядав результат запиту.

Функціональність RIGHT JOIN в SQL ідентична LEFT JOIN, з тією лише різницею, що напрямок операції інвертується.

немає LEFT JOIN не краще ніж RIGHT JOIN. Це просто інша логіка, з якою працює оптимізатор.