logo

MySQL НАЛЯВО ПРИСЪЕДИНЯВАНЕ

Лявото съединение в MySQL се използва за запитване на записи от множество таблици. Тази клауза е подобна на клаузата Inner Join, която може да се използва с оператор SELECT непосредствено след ключовата дума FROM. Когато използваме клаузата за свързване отляво, тя ще върне всички записи от първата (лявата) таблица, дори няма намерени съответстващи записи от втората (дясна) таблица. Ако не намери съответстващ запис от дясната странична таблица, връща нула.

С други думи, клаузата Left Join връща всички редове от лявата таблица и съвпадащи записи от дясната таблица или връща Null, ако не е намерен съответстващ запис. Това присъединяване може също да се нарече a Ляво външно съединение клауза. Така че Outer е незадължителната ключова дума за използване с Left Join.

Можем да го разберем със следното визуално представяне, където Left Joins връща всички записи от лявата таблица и само съответстващите записи от дясната странична таблица:

MySQL НАЛЯВО ПРИСЪЕДИНЯВАНЕ

Синтаксис на 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 НАЛЯВО ПРИСЪЕДИНЯВАНЕ

Таблица: поръчки

MySQL НАЛЯВО ПРИСЪЕДИНЯВАНЕ

За да изберете записи от двете таблици, изпълнете следната заявка:

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

След успешното изпълнение на заявката, тя ще даде следния резултат:

подстриг на javascript
MySQL НАЛЯВО ПРИСЪЕДИНЯВАНЕ

MySQL LEFT JOIN с клауза USING

Таблицата клиенти и поръчки имат едно и също име на колона, което е customer_id. В този случай MySQL Left Join може също да се използва с клаузата USING за достъп до записите. Следният оператор връща идентификатор на клиента, име на клиент, професия, цена и дата, като използва клаузата за ляво присъединяване с ключовата дума USING.

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

Горното изявление ще даде следния резултат:

MySQL НАЛЯВО ПРИСЪЕДИНЯВАНЕ

MySQL LEFT JOIN с група по клауза

Лявото присъединяване може да се използва и с клаузата 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 с клауза WHERE

Клаузата WHERE се използва за връщане на филтър резултат от таблицата. Следният пример илюстрира това с клаузата Left Join:

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

Това твърдение дава следния резултат:

MySQL НАЛЯВО ПРИСЪЕДИНЯВАНЕ

MySQL LEFT JOIN Множество таблици

Вече създадохме две таблици с име ' клиенти' и ' поръчки' . Нека създадем още една таблица и я именуваме като ' контакти', който съдържа следните данни:

MySQL НАЛЯВО ПРИСЪЕДИНЯВАНЕ

Изпълнете следния оператор, за да се присъедините към трите таблици клиенти, поръчки и контакти:

 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, за да намери клиент, който няма номер на мобилен телефон:

може ли Android да играе gamepigeon
 SELECT customer_id, cust_name, cellphone, homephone FROM customers LEFT JOIN contacts ON customer_id = contact_id WHERE cellphone IS NULL ; 

Горният израз връща следния резултат:

MySQL НАЛЯВО ПРИСЪЕДИНЯВАНЕ

Разлика между клаузата 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 НАЛЯВО ПРИСЪЕДИНЯВАНЕ

ON клауза

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

Той ще даде следния резултат:

MySQL НАЛЯВО ПРИСЪЕДИНЯВАНЕ

ЗАБЕЛЕЖКА: Условието WHERE и ON в клаузата Inner Join винаги връща еквивалентни резултати.