logo

Разлика между ляво и дясно съединяване

MySQL има основно два вида съединения, наречени LEFT JOIN и RIGHT JOIN. Основната разлика между тези съединения е включване на несъвпадащи редове . LEFT JOIN включва всички записи от лявата страна и съвпадащи редове от дясната таблица, докато RIGHT JOIN връща всички редове от дясната страна и несравними редове от лявата таблица. В този раздел ще научим популярните разлики между ЛЯВО и ДЯСНО съединение. Преди да проучим сравнението, нека първо разберем клаузите JOIN, LEFT JOIN и RIGHT JOIN MySQL .

Какво е клауза JOIN?

А присъединяване се използва за запитване към данни от множество таблици и връща комбинирания резултат от две или повече таблици чрез условие. Условието в клаузата за свързване показва как колоните се съпоставят между посочените таблици.

Какво представлява клаузата LEFT JOIN?

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

Можем да го разберем със следното визуално представяне:

Ляво присъединяване срещу дясно присъединяване

За да прочетете повече информация за ЛЯВОТО присъединяване, Натисни тук .

Какво представлява клаузата RIGHT JOIN?

Клаузата Right Join обединява две или повече таблици и връща всички редове от дясната таблица и само онези резултати от другата таблица, които са изпълнили указаното условие за свързване. Ако открие несъвпадащи записи от лявата странична таблица, връща стойност Null. Известен е още като Дясно външно присъединяване . Така че Outer е незадължителната клауза за използване с Right Join.

Можем да го разберем със следното визуално представяне .

Ляво присъединяване срещу дясно присъединяване

За да прочетете повече информация за RIGHT JOIN, щракнете тук.

Синтаксис на клаузата LEFT JOIN

Следва общият синтаксис на LEFT JOIN:

 SELECT column_list FROM table_name1 LEFT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

Следва общият синтаксис на LEFT OUTER JOIN:

 SELECT column_list FROM table_name1 LEFT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

Синтаксис на клаузата RIGHT JOIN

Следва общият синтаксис на RIGHT JOIN:

 SELECT column_list FROM table_name1 RIGHT JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

Следва общият синтаксис на RIGHT OUTER JOIN:

 SELECT column_list FROM table_name1 RIGHT OUTER JOIN table_name2 ON column_name1 = column_name2 WHERE join_condition 

ЛЯВО СЪЕДИНЯВАНЕ срещу ДЯСНО СЪЕДИНЯВАНЕ

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

ЛЯВО ПРИСЪЕДИНЯВАНЕ ПРАВИЛНО ПРИСЪЕДИНЕНЕ
Той обединява две или повече таблици, връща всички записи от лявата таблица и съвпадащите редове от дясната таблица. Използва се за свързване на две или повече таблици, връща всички записи от дясната таблица и съответстващи редове от лявата таблица.
Наборът от резултати ще съдържа нулева стойност, ако няма съответстващ ред в таблицата от дясната страна. Наборът от резултати ще съдържа нулева стойност, ако няма съответстващ ред в лявата странична таблица.
Известен е още като ЛЯВО ВЪНШНО СЪЕДИНЯВАНЕ. Нарича се също като ДЯСНО ВЪНШНО СЪЕДИНЕНИЕ.

Пример

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

Маса: клиент

Ляво присъединяване срещу дясно присъединяване

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

Ляво присъединяване срещу дясно присъединяване

LEFT JOIN Пример

Следващият SQL израз връща съвпадащите записи от двете таблици с помощта на заявката LEFT JOIN:

 SELECT cust_id, cust_name, order_num, order_date FROM customer LEFT JOIN orders ON customer.cust_id = orders.order_id WHERE order_date <'2020-04-30'; < pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-5.webp" alt="Left Join vs Right Join"> <p> <strong>RIGHT JOIN Example</strong> </p> <p>Following SQL statement returns the matching records from both tables using the RIGHT JOIN query:</p> <pre> SELECT cust_id, cust_name, occupation, order_num, order_date FROM customer RIGHT JOIN orders ON cust_id = order_id ORDER BY order_date; </pre> <p>After successful execution of the query, we will get the output as follows:</p> <img src="//techcodeview.com/img/mysql-tutorial/37/difference-between-left-join-6.webp" alt="Left Join vs Right Join"> <hr></'2020-04-30';>

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

Ляво присъединяване срещу дясно присъединяване