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';>
След успешно изпълнение на заявката, ще получим резултата, както следва:
'2020-04-30';>