Right join: Оператор SQL RIGHT JOIN: примеры, синтаксис
Содержание
MySQL ПРАВОЕ СОЕДИНЕНИЕ — javatpoint
следующий → Правое соединение используется для соединения двух или более таблиц и возвращает все строки из правой таблицы и только те результаты из другой таблицы, которые удовлетворяют условию соединения. Если он находит несопоставленные записи из левой таблицы, он возвращает значение Null. Это похоже на левое соединение, за исключением того, что оно дает обратный результат для таблиц соединения. Он также известен как правое внешнее соединение. Таким образом, Outer является необязательным предложением, используемым с Right Join. Мы можем понять это с помощью следующего визуального представления, где Right Outer Join возвращает все записи из левой таблицы и только совпадающие записи из другой таблицы: ПРАВОЕ СОЕДИНЕНИЕ СинтаксисНиже приведен синтаксис Right Join, который объединяет таблицы Table1 и Table2 : ВЫБЕРИТЕ список_столбцов ПРИМЕЧАНИЕ.Если в правом соединении таблицы содержат одно и то же имя столбца, предложения ON и USING дают эквивалентные результаты. Давайте посмотрим, как работает Right Join. Это объединение начинает выбор столбцов из правой таблицы и сопоставляет каждую запись этой таблицы из левой таблицы. Если обе записи удовлетворяют заданному условию соединения, все столбцы объединяются в новый набор строк, который будет возвращен в качестве вывода. Если строки правой таблицы не находят совпадающих строк из левой таблицы, эти строки из правой таблицы объединяются со значениями Null. Это означает, что правое соединение возвращает все данные из правой таблицы независимо от того, совпадают ли они со строками из левой таблицы или нет. MySQL RIGHT JOIN ПримерыДавайте рассмотрим несколько примеров, чтобы понять работу предложения Right Join: Предложение RIGHT JOIN для соединения двух таблицЗдесь мы собираемся создать две таблицы « клиентов» и « заказов» , которые содержат следующие данные: Таблица: клиенты Таблица: заказы Чтобы выбрать записи из обеих таблиц с помощью RIGHT JOIN, выполните следующий запрос: ВЫБЕРИТЕ customers. customer_id, cust_name, цена, дата ИЛИ, ВЫБЕРИТЕ customers.customer_id, cust_name, цена, дата После успешного выполнения вышеуказанных запросов он выдаст эквивалентный вывод: ПРАВОЕ СОЕДИНЕНИЕ с WHERE ПунктMySQL использует предложение WHERE для предоставления результата фильтра из таблицы. Следующий пример иллюстрирует это с предложением Right Join: . ВЫБЕРИТЕ * ОТ клиентов Этот оператор дает следующий результат: MySQL RIGHT JOIN Несколько таблицМы уже создали две таблицы с именами « клиентов» и « заказов» . Давайте создадим еще одну таблицу и назовем ее « контактов», который содержит следующие данные: Выполните следующую инструкцию, чтобы объединить три таблицы клиентов, заказов и контактов: ВЫБЕРИТЕ customers. customer_id, cust_name, order_id, цена, мобильный телефон После успешного выполнения вышеуказанного запроса он выдаст следующий результат: Использование предложения RIGHT JOIN для получения несовпадающих записейПредложение Right Join также полезно в том случае, когда мы хотим получить записи в таблице, которая не содержит совпадающих строк данных из другой таблицы. Мы можем понять это на следующем примере, в котором используется предложение RIGHT JOIN для поиска клиента, у которого нет номера мобильного телефона : ВЫБЕРИТЕ customer_id, cust_name, мобильный телефон, домашний телефон Приведенный выше оператор возвращает следующий вывод: Next TopicSQL CROSS JOIN ← предыдущая |
Можем ли мы заменить правое соединение левым соединением
SQL-скрипты, если вы хотите следовать примеру.
Создать таблицу полов ( GenderID int первичный ключ, Пол nvarchar(50) ) ИДТИ Создать табличных сотрудников ( EmployeeID в первичном ключе, имя_сотрудника nvarchar(50), GenderID int ссылки на внешний ключ Полы (GenderID) ) ИДТИ Вставьте в значения «Пол» (1, «Мужской») Вставьте в значения «Пол» (2, «Женщина») Вставить в значения «Пол» (3, «Не указано») ИДТИ Вставить в значения «Сотрудники» (1, «Отметить», 1) Вставьте в значения «Сотрудники» (2, «Сара», 2) Вставить в значения сотрудников (3, «Том», ноль) ВПЕРЕД
В этом видео мы обсудим, можем ли мы заменить RIGHT JOIN на LEFT JOIN и наоборот. Перед этим давайте быстро поймем, что сделают LEFT и RIGHT JOIN?
LEFT JOIN
LEFT JOIN возвращает все строки из левой таблицы и соответствующие строки из правой таблицы.
ПРАВОЕ СОЕДИНЕНИЕ
ПРАВОЕ СОЕДИНЕНИЕ возвращает все строки из правой таблицы и соответствующие строки из левой таблицы.
Почему таблицы называются ЛЕВАЯ и ПРАВАЯ таблицы
-
Таблицы Employees
иGenders
объединяются в этом запросе. - Что касается ключевого слова
JOIN
, таблицаEmployees
находится слева, а таблицаGenders
— справа. - Итак, в этом запросе
Сотрудники
— ЛЕВАЯ ТАБЛИЦА, аПол
— ПРАВАЯ ТАБЛИЦА.
СОЕДИНЕНИЕ или ВНУТРЕННЕЕ СОЕДИНЕНИЕ
ТИП СОЕДИНЕНИЯ, который у нас здесь, — ВНУТРЕННЕЕ СОЕДИНЕНИЕ. Мы можем использовать INNER JOIN или просто JOIN. В обоих случаях мы получаем только совпадающие строки из обеих таблиц (LEFT и RIGHT).
LEFT JOIN или LEFT OUTER JOIN
Мы можем использовать либо LEFT JOIN, либо LEFT OUTER JOIN. Они одинаковые, возвращают все строки из левой таблицы и соответствующие строки из правой таблицы.
ПРАВОЕ СОЕДИНЕНИЕ или ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
Мы можем использовать либо ПРАВОЕ СОЕДИНЕНИЕ, либо ПРАВОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ. Они одинаковые, возвращают все строки из правой таблицы и соответствующие строки из левой таблицы.
Внутреннее, левое и правое соединения
Можем ли мы заменить RIGHT JOIN на LEFT JOIN
Что ж, можем. Например, следующие 2 запроса дают один и тот же результат.
ВЫБЕРИТЕ ID сотрудника, имя сотрудника, пол ОТ сотрудников ПРАВО ПРИСОЕДИНЯТЬСЯ Пол ON Сотрудники.GenderID = Полы.GenderID ВЫБЕРИТЕ идентификатор сотрудника, имя сотрудника, пол FROM Полы LEFT ПРИСОЕДИНЯЙТЕСЬ Сотрудники ON Employees.GenderID = Genders.GenderID
Просто поменяйте местами таблицы и используйте LEFT JOIN вместо RIGHT JOIN, и вы получите тот же результат. Даже с точки зрения производительности не должно быть никакой разницы. Нам действительно не нужно ПРАВОЕ СОЕДИНЕНИЕ.
Итак, вы можете задаться вопросом, тогда зачем нам ПРАВОЕ СОЕДИНЕНИЕ, когда мы можем получить тот же результат, используя ЛЕВО СОЕДИНЕНИЕ?
- Ну, это своего рода вопрос, зачем нам нужно МЕНЬШЕ (<), когда у нас уже есть БОЛЬШЕ (>).
- Иногда, в зависимости от желаемого вывода, особенно при объединении трех или более таблиц, может быть проще использовать комбинацию ЛЕВЫХ и ПРАВЫХ СОЕДИНЕНИЙ вместо только ЛЕВЫХ СОЕДИНЕНИЙ.