logo

SQL Left Outer Join проти Left Join

У SQL і LEFT JOIN, і LEFT OUTER JOIN використовуються для об’єднання даних з двох або більше таблиць на основі пов’язаного стовпця, але це, по суті, та сама операція, і практичної різниці між ними немає. Ключове слово OUTER є необов’язковим у більшості систем баз даних, включаючи такі популярні, як MySQL, PostgreSQL і SQL Server.

Приєднатися зліва

Ліве з’єднання або ліве зовнішнє з’єднання



Зліва Приєднатися

А SQL операція, яка поєднує дві таблиці, показуючи всі рядки з лівої таблиці та відповідні рядки з правої таблиці. Якщо в правій таблиці немає відповідності, вона відображається НУЛЬ значення.

Синтаксис

ВИБЕРІТЬ * З Таблиці1

LEFT JOIN Table2 ON Table1.columnName = Table2.columnName;



Ліве зовнішнє з'єднання

Інша операція SQL, концептуально ідентична LEFT JOIN. Він також поєднує таблиці, показуючи всі рядки з лівої таблиці та відповідні рядки з правої таблиці. Якщо в правильній таблиці немає відповідності, вона відображає значення NULL.

Синтаксис

ВИБЕРІТЬ * З Таблиці1

дата машинопису

LEFT OUTER JOIN Table2 ON Table1.columnName = Table2.columnName;



LEFT JOIN і LEFT OUTER JOIN — це, по суті, те саме в SQL. Вони обидва поєднують дані з двох таблиць, показуючи всі рядки з лівої таблиці та відповідні рядки з правої таблиці. Якщо в правильній таблиці немає відповідності, вони відображатимуть значення NULL. Єдина відмінність полягає в термінології: LEFT JOIN використовується в деяких базах даних, наприклад MySQL , тоді як LEFT OUTER JOIN використовується в інших, як-от SQL Server. Більш глибоко System.out.print() використовується в java, водночас print використовується в python, але обидва відображають той самий результат. Отже, це лише питання, якому терміну надає перевагу ваша система баз даних, але результат ідентичний.

Перш ніж заглибитися в приклади, давайте створимо дані, необхідні для виконання лівого зовнішнього з’єднання та лівого з’єднання.

Крок 1: Створіть базу даних

create database geeksforgeeks; use geeksforgeeks;>

Крок 2: Створіть таблицю під назвою athelete

create table atheletes(Id int, Name varchar(20),  AtheleteNO int, primary key(Id) );>

Крок 3: Вставте значення в таблицю athelete

INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (1, 'abisheik', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (2, 'Niyas', 27); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (3, 'Joseph', 29); INSERT INTO atheletes (Id, Name, AtheleteNO) VALUES (4, 'Juan', 24);>

Крок 4. Створіть таблицю під назвою Points

CREATE TABLE Points(ID INT, Score INT,AtheleteID INT,   PRIMARY KEY (ID) );>

Крок 5: Вставте значення в таблицю Points

INSERT INTO Points (ID, Score, AtheleteID) VALUES (1, 270, 1); INSERT INTO Points (ID, Score, AtheleteID) VALUES (2, 297, 2); INSERT INTO Points (ID, Score, AtheleteID) VALUES (3, 210, 3); INSERT INTO Points (ID, Score, AtheleteID) VALUES (4, 180, 4);>

Тепер ми успішно створили таблицю athelete та Points для операції об’єднання.

приклад:

Використовуючи ліве зовнішнє об’єднання, запит буде виконано.

Запит

SELECT * FROM atheletes   LEFT OUTER JOIN Points ON  atheletes.ID = Points.AtheleteID;>

Вихід

ID

Ім'я

Спортсменка НІ

ID

Оцінка

AtheleteID

1

веб-сайти з фільмами, схожі на 123movies

Абишейк

27

1

270

1

2

Ніяс

27

2

297

2

3

Йосип

29

3

210

3

4

Хуан

24

4

180

4

приклад:

Використовуючи Left Join, запит буде виконано.

Запит

SELECT * FROM atheletes   LEFT JOIN Points ON  atheletes.ID = Points.AtheleteID;>

Вихід

ID

Ім'я

Спортсменка НІ

доповнення css

ID

Оцінка

AtheleteID

1

Абишейк

27

1

270

1

2

Ніяс

27

2

btree і b дерево

297

2

3

Йосип

29

3

210

3

4

Хуан

24

4

180

4

Висновок

У SQL LEFT JOIN і LEFT OUTER JOIN по суті є однаковими операціями, що відрізняються лише термінологією. Обидві операції об’єднують дані з двох таблиць, відображаючи всі рядки з лівої таблиці та відповідні рядки з правої таблиці, одночасно показуючи значення NULL для невідповідних рядків. Незалежно від терміну, який використовується у вашій системі бази даних, результат залишається ідентичним.

Поширені запитання щодо лівого з’єднання проти лівого зовнішнього з’єднання

Q.1: Чи є різниця в продуктивності між LEFT JOIN і LEFT OUTER JOIN?

відповідь:

Ні, різниці в продуктивності немає. Ці терміни взаємозамінні, і оптимізатор бази даних обробляє їх однаково.

Q.2: Чи можу я використовувати LEFT JOIN або LEFT OUTER JOIN з більш ніж двома таблицями?

відповідь:

Так, ви можете використовувати ці операції з’єднання з кількома таблицями, розширивши синтаксис, вказавши умови з’єднання для кожної таблиці.

javascript onload

Q.3: Чи всі системи баз даних підтримують як LEFT JOIN, так і LEFT OUTER JOIN?

відповідь:

Більшість широко використовуваних систем баз даних, включаючи MySQL, PostgreSQL і SQL Server, підтримують як LEFT JOIN, так і LEFT OUTER JOIN. Однак важливо перевірити документацію конкретної бази даних на сумісність.

Q.4: Що станеться, якщо я використаю LEFT JOIN або LEFT OUTER JOIN без визначення умови об’єднання?

відповідь:

Використання цих операцій об’єднання без умови об’єднання призведе до декартового добутку, де кожен рядок лівої таблиці поєднується з кожним рядком правої таблиці, що потенційно може призвести до великого та неефективного набору результатів.

Q.5: Чи існують інші типи об’єднань SQL?

відповідь:

Так, SQL підтримує різні типи об’єднань, зокрема INNER JOIN, RIGHT JOIN, FULL OUTER JOIN і CROSS JOIN, кожне з яких служить різним цілям у об’єднанні даних із кількох таблиць.