logo

MySQL LEFT JOIN

Ліве з'єднання в MySQL використовується для запиту записів із кількох таблиць. Це речення схоже на речення Inner Join, яке можна використовувати з інструкцією SELECT відразу після ключового слова FROM. Коли ми використовуємо пропозицію Left Join, вона повертає всі записи з першої (лівосторонньої) таблиці, навіть не знайдено жодного відповідного запису з другої (правої) таблиці. Якщо він не знайде жодного відповідного запису з правої бічної таблиці, повертає значення null.

jquery цього клацання

Іншими словами, речення Left Join повертає всі рядки з лівої таблиці та відповідні записи з правої таблиці або повертає Null, якщо відповідного запису не знайдено. Це об'єднання також можна назвати a Ліве зовнішнє з'єднання пункт. Отже, Outer є необов’язковим ключовим словом для використання з Left Join.

Ми можемо зрозуміти це за допомогою наступного візуального представлення, де Left Joins повертає всі записи з лівої таблиці та лише відповідні записи з правої бічної таблиці:

MySQL LEFT JOIN

Синтаксис MySQL LEFT JOIN

Наступний синтаксис пояснює речення Left Join для об’єднання двох або більше таблиць:

 SELECT columns FROM table1 LEFT [OUTER] JOIN table2 ON Join_Condition; 

У наведеному вище синтаксисі таблиця1 — ліва таблиця, і таблиця2 це таблиця справа. Цей пункт повертає всі записи з таблиці1 та відповідні записи з таблиці2 на основі вказаного умова приєднання .

Приклад MySQL LEFT JOIN

Розглянемо кілька прикладів, щоб зрозуміти, як працює речення Left Join або Left Outer Join:

Речення LEFT JOIN для об’єднання двох таблиць

Тут ми створимо дві таблиці ' клієнтів і ' замовлення який містить такі дані:

Таблиця: клієнти

MySQL LEFT JOIN

Таблиця: замовлення

MySQL LEFT JOIN

Щоб вибрати записи з обох таблиць, виконайте такий запит:

 SELECT customers.customer_id, cust_name, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id; 

Після успішного виконання запиту він видасть наступний результат:

MySQL LEFT JOIN

MySQL LEFT JOIN з пропозицією USING

Таблиця клієнтів і замовлень має однакову назву стовпця, тобто customer_id. У цьому випадку MySQL Left Join також можна використовувати з пропозицією USING для доступу до записів. Наступний оператор повертає ідентифікатор клієнта, ім’я клієнта, професію, ціну та дату за допомогою пропозиції Left Join із ключовим словом USING.

 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id); 

Наведений вище оператор дасть наступний результат:

MySQL LEFT JOIN

MySQL LEFT JOIN з пропозицією Group By

Об’єднання зліва також можна використовувати з пропозицією GROUP BY. Наступний оператор повертає ідентифікатор клієнта, ім’я клієнта, кваліфікацію, ціну та дату за допомогою речення Left Join із реченням GROUP BY.

 SELECT customers.customer_id, cust_name, qualification, price, date FROM customers LEFT JOIN orders ON customers.customer_id = orders.customer_id GROUP BY price; 

Наведений вище оператор дасть наступний результат:

MySQL LEFT JOIN

LEFT JOIN з реченням WHERE

Речення WHERE використовується для повернення фільтр результат з табл. Наступний приклад ілюструє це з пропозицією Left Join:

ціле число в рядок
 SELECT customer_id, cust_name, occupation, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price>2500; 

Це твердження дає наступний результат:

MySQL LEFT JOIN

MySQL LEFT JOIN Кілька таблиць

Ми вже створили дві таблиці з назвою ' клієнтів і ' замовлення . Давайте створимо ще одну таблицю і назвемо її як ' контакти», який містить такі дані:

MySQL LEFT JOIN

Виконайте наступний оператор, щоб об’єднати три таблиці клієнти, замовлення та контакти:

 SELECT customers.customer_id, cust_name, order_id, price, cellphone FROM customers LEFT JOIN contacts ON customer_id = contact_id LEFT JOIN orders ON customers.customer_id = orders.customer_id ORDER BY income; 

Після успішного виконання наведеного вище запиту він видасть наступний результат:

MySQL LEFT JOIN

Використання пропозиції LEFT JOIN для отримання невідповідних записів

Речення LEFT JOIN також корисно в тому випадку, коли ми хочемо отримати записи в таблиці, яка не містить відповідних рядків даних з іншої таблиці.

Ми можемо зрозуміти це за допомогою наступного прикладу, у якому використовується речення LEFT JOIN для пошуку клієнта, який не має номера мобільного телефону:

 SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ; 

Наведений вище оператор повертає такий результат:

MySQL LEFT JOIN

Різниця між реченнями WHERE і ON у MySQL LEFT JOIN

У LEFT Join умова WHERE і ON дає інший результат. Ми можемо побачити наступні запити, щоб зрозуміти їхні відмінності:

Речення WHERE

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders USING(customer_id) WHERE price=2500; 

Це дасть такий результат, який повертає:

MySQL LEFT JOIN

Речення ON

 SELECT cust_name, occupation, order_id, price, date FROM customers LEFT JOIN orders ON price=2500; 

Це дасть наступний результат:

MySQL LEFT JOIN

ПРИМІТКА. Умова WHERE і ON у реченні Inner Join завжди повертає еквівалентні результати.