У 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, кожне з яких служить різним цілям у об’єднанні даних із кількох таблиць.