LEFT JOIN — Учебник SQL — Schoolsw3.com
schoolsw3.comСАМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ
❮ Назад Далее ❯
LEFT JOIN
Ключевое слово LEFT JOIN возвращает все записи из левой таблицы (table1) и соответствующие записи из правой таблицы (table2). Результат будет нулевым с правой стороны, если нет совпадения.
Синтаксис LEFT JOIN
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name = table2.column_name;
Примечание: В некоторых базах данных LEFT JOIN называется левым внешним соединением.
Демо база данных
В этом уроке мы будем использовать хорошо известный пример базы данных Northwind.
Ниже приведен выбор из таблицы «Customers»:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
И выбор из таблицы «Orders»:
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10308 | 2 | 7 | 1996-09-18 | 3 |
10309 | 37 | 3 | 1996-09-19 | 1 |
10310 | 77 | 8 | 1996-09-20 | 2 |
Пример SQL LEFT JOIN
В следующей инструкции SQL будут выбраны все клиенты и любые заказы, которые они могут иметь:
Пример
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers. CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
Примечание: Ключевое слово LEFT JOIN возвращает все записи из левой таблицы (Customers), даже если в правой таблице (Orders) нет совпадений.
❮ Назад Далее ❯
ВЫБОР ЦВЕТА
ТОП Учебники
HTML УчебникCSS Учебник
JavaScript Учебник
КАК Учебник
SQL Учебник
Python Учебник
W3.CSS Учебник
Bootstrap Учебник
PHP Учебник
Java Учебник
C++ Учебник
jQuery Учебник
ТОП Справочники
HTML СправочникCSS Справочник
JavaScript Справочник
SQL Справочник
Python Справочник
W3.CSS Справочник
Bootstrap Справочник
PHP Справочник
HTML Цвета
Java Справочник
Angular Справочник
jQuery Справочник
ТОП Примеры
HTML ПримерыCSS Примеры
JavaScript Примеры
КАК Примеры
SQL Примеры
Python Примеры
W3.CSS Примеры
PHP Примеры
Java Примеры
XML Примеры
jQuery Примеры
Форум | О SchoolsW3
SchoolsW3 оптимизирован для бесплатного обучения, проверки и подготовки знаний. Примеры в редакторе упрощают и улучшают чтение и базовое понимание. Учебники, ссылки, примеры постоянно пересматриваются, чтобы избежать ошибок, но не возможно гарантировать полную правильность всего содержания. Некоторые страницы сайта могут быть не переведены на РУССКИЙ язык, можно отправить страницу как ошибку, так же можете самостоятельно заняться переводом. Используя данный сайт, вы соглашаетесь прочитать и принять Условия к использованию, Cookies и политика конфиденциальности.Авторское право 1999- Все права защищены.
SchoolsW3 работает на площадке от SW3.CSS.
Операции LEFT JOIN, RIGHT JOIN (Microsoft Access SQL)
Twitter LinkedIn Facebook Адрес электронной почты- Статья
Область применения: Access 2013, Office 2013
Объединяют записи исходных таблиц при использовании в любом предложении FROM.
Синтаксис
FROM table1 [ LEFT | RIGHT ] JOIN table2 ON table1.field1compopr table2.field2
Операции LEFT JOIN и RIGHT JOIN состоят из следующих элементов:
таблица1, таблица2 | Имена таблиц, содержащих объединяемые записи. |
поле1, поле2 | Имена объединяемых полей. Поля должны относиться к одному типу данных и содержать данные одного вида. Однако имена этих полей могут быть разными. |
оператор_сравнения | Любой оператор реляционного сравнения: «=», «<«, «>,» «<=», «>=» или «<>». |
Операция LEFT JOIN создает левое внешнее соединение. С помощью левого внешнего соединения выбираются все записи первой (левой) таблицы, даже если они не соответствуют записям во второй (правой) таблице.
Операция RIGHT JOIN создает правое внешнее соединение. С помощью правого внешнего соединения выбираются все записи второй (правой) таблицы, даже если они не соответствуют записям в первой (левой) таблице.
Например, в случае с таблицами «Отделы» (левая) и «Сотрудники» (правая) можно воспользоваться операцией LEFT JOIN для выбора всех отделов (включая те, в которых нет сотрудников). Чтобы выбрать всех сотрудников (в том числе и не закрепленных за каким-либо отделом), используйте RIGHT JOIN.
В следующем примере показано, как можно объединить таблицы Categories и Products по полю CategoryID. Результат запроса представляет собой список категорий, включая те, которые не содержат товаров.
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
В этом примере CategoryID является объединенным полем, но оно не включается в результаты запроса, поскольку не указано в инструкции SELECT. Чтобы включить объединенное поле в результаты запроса, укажите его имя в инструкции SELECT.
Примечание.
- Чтобы создать запрос, результатом которого являются только те записи, для которых совпадают данные в объединенных полях, воспользуйтесь операцией INNER JOIN.
- Операции LEFT JOIN и RIGHT JOIN могут быть вложены в операцию INNER JOIN, но операция INNER JOIN не может быть вложена в операцию LEFT JOIN или RIGHT JOIN. Подробные сведения о вложении объединений можно найти в статье, посвященной операции INNER JOIN.
- Вы можете связать несколько предложений ON. Сведения о связывании предложений см. в статье, посвященной операции INNER JOIN.
- При попытке связи полей, содержащих данные типа Memo или объекты OLE, возникнет ошибка.
Пример
В этом примере:
Предполагается существование гипотетических полей Department Name (Название отдела) и Department ID (Код отдела) в таблице Employees (Сотрудники). Обратите внимание, что эти поля на самом деле не существуют в таблице Employees (Сотрудники) базы данных Northwind.
Выбираются все отделы, в том числе без сотрудников.
Выполняется вызов процедуры EnumFields, которую можно найти в примере для инструкции SELECT.
Sub LeftRightJoinX() Dim dbs As Database, rst As Recordset ' Modify this line to include the path to Northwind ' on your computer. Set dbs = OpenDatabase("Northwind.mdb") ' Select all departments, including those ' without employees. Set rst = dbs.OpenRecordset _ ("SELECT [Department Name], " _ & "FirstName & Chr(32) & LastName AS Name " _ & "FROM Departments LEFT JOIN Employees " _ & "ON Departments.[Department ID] = " _ & "Employees.[Department ID] " _ & "ORDER BY [Department Name];") ' Populate the Recordset. rst.MoveLast ' Call EnumFields to print the contents of the ' Recordset.Pass the Recordset object and desired ' field width. EnumFields rst, 20 dbs.Close End Sub
SQL LEFT JOIN Ключевое слово
❮ Предыдущий Далее ❯
Ключевое слово SQL LEFT JOIN
Ключевое слово LEFT JOIN
возвращает все записи из левой таблицы (таблица1), а
соответствующие записи из правой таблицы (таблица 2). Результат — 0 записей с правой стороны,
если совпадения нет.
Синтаксис LEFT JOIN
SELECT имя_столбца(ов)
FROM таблица1
LEFT JOIN таблица2
ON таблица1.имя_столбца = table2.column_name ;
Примечание: В некоторых базах данных LEFT JOIN называется LEFT OUTER JOIN.
Демонстрационная база данных
В этом руководстве мы будем использовать известную учебную базу данных Northwind.
Ниже представлена выборка из таблицы «Клиенты»:
CustomerID | ИмяКлиента | Имя контакта | Адрес | Город | Почтовый индекс | Страна |
---|---|---|---|---|---|---|
1 | Альфред Футтеркисте | Мария Андерс | ул. Обере 57 | Берлин | 12209 | Германия |
2 | Ана Трухильо Emparedados y helados | Ана Трухильо | Авда. Конститусьон 2222 | Мексика Д.Ф. | 05021 | Мексика |
3 | Антонио Морено Такерия | Антонио Морено | Матадерос 2312 | Мексика Д.Ф. | 05023 | Мексика |
И выбор из таблицы «Заказы»:
OrderID | идентификатор клиента | ID сотрудника | Дата заказа | Код отправителя |
---|---|---|---|---|
10308 | 2 | 7 | 18.09.96 | 3 |
10309 | 37 | 3 | 1996-09-19 | 1 |
10310 | 77 | 8 | 1996-09-20 | 2 |
Пример SQL LEFT JOIN
Следующая инструкция SQL выберет всех клиентов и все заказы, которые они может иметь:
Пример
SELECT Customers. CustomerName, Orders.OrderID
ОТ Клиентов
ЛЕВОЕ СОЕДИНЕНИЕ Заказы
ON Customers.CustomerID = Orders.CustomerID
ORDER BY Customers.CustomerName;
Примечание: Ключевое слово LEFT JOIN
возвращает все записи из
левая таблица (Клиенты), даже если в правой таблице нет совпадений
(Заказы).
❮ Предыдущий Следующий ❯
ВЫБОР ЦВЕТА
Лучшие учебники
Учебник HTMLУчебник CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебное пособие по W3.CSS
Учебное пособие по Bootstrap
Учебное пособие по PHP
Учебное пособие по Java
Учебное пособие по C++
Учебное пособие по jQuery
Лучшие ссылки
Справочник по HTMLСправочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3. CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery
Основные примеры
Примеры HTMLПримеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery
ФОРУМ | О
W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности. Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.
Операции LEFT JOIN, RIGHT JOIN (Microsoft Access SQL)
Редактировать Твиттер LinkedIn Фейсбук Электронная почта- Статья
Применяется к : Access 2013, Office 2013
Объединяет записи исходной таблицы при использовании в любом предложении FROM.
Синтаксис
ИЗ таблица1 [ ВЛЕВО | RIGHT ] JOIN table2 ON table1.field1 compopr table2.field2
Операции LEFT JOIN и RIGHT JOIN состоят из следующих частей:
стол1 , стол2 | Имена таблиц, из которых объединяются записи. |
поле1 , поле2 | Имена объединяемых полей. Поля должны иметь один и тот же тип данных и содержать одинаковые данные, но они не обязательно должны иметь одно и то же имя. |
комп. | Любой оператор реляционного сравнения: «=», «<», «>», «<=», «>=» или «<>». |
Используйте операцию LEFT JOIN для создания левого внешнего соединения. Левые внешние соединения включают все записи из первой (левой) из двух таблиц, даже если нет совпадающих значений для записей во второй (правой) таблице.
Используйте операцию RIGHT JOIN для создания правильного внешнего соединения. Правое внешнее соединение включает все записи из второй (правой) из двух таблиц, даже если нет совпадающих значений для записей в первой (левой) таблице.
Например, вы можете использовать LEFT JOIN с таблицами «Отделы» (слева) и «Сотрудники» (справа), чтобы выбрать все отделы, включая те, которым не назначены сотрудники. Чтобы выбрать всех сотрудников, включая тех, кто не относится к отделу, вы должны использовать RIGHT JOIN.
В следующем примере показано, как можно соединить таблицы «Категории» и «Продукты» в поле «Код категории». Запрос выдает список всех категорий, включая те, которые не содержат товаров:
ВЫБЕРИТЕ ИмяКатегории, Наименование товара ИЗ Категории LEFT JOIN Продукты ON Categories.CategoryID = Products.CategoryID;
В этом примере CategoryID является присоединяемым полем, но оно не включается в результаты запроса, поскольку не включено в инструкцию SELECT. Чтобы включить объединенное поле, введите имя поля в операторе SELECT — в данном случае, Categories.CategoryID.
Примечание
- Чтобы создать запрос, включающий только те записи, в которых данные в объединенных полях совпадают, используйте операцию INNER JOIN.
- ЛЕВОЕ СОЕДИНЕНИЕ или ПРАВОЕ СОЕДИНЕНИЕ могут быть вложены во ВНУТРЕННЕЕ СОЕДИНЕНИЕ, но ВНУТРЕННЕЕ СОЕДИНЕНИЕ не может быть вложено в ЛЕВОЕ СОЕДИНЕНИЕ или ПРАВОЕ СОЕДИНЕНИЕ. См. обсуждение вложения в разделе INNER JOIN, чтобы узнать, как вкладывать соединения в другие соединения.
- Вы можете связать несколько предложений ON. См. обсуждение связывания предложений в теме INNER JOIN, чтобы увидеть, как это делается.
- При попытке объединить поля, содержащие данные Memo или OLE Object, возникает ошибка.
Пример
В этом примере:
Предполагается существование гипотетических полей «Название отдела» и «Идентификатор отдела» в таблице «Сотрудники». Обратите внимание, что эти поля фактически не существуют в таблице сотрудников базы данных Northwind.
Выбирает все отделы, в том числе без сотрудников.
Вызывает процедуру EnumFields, которую можно найти в примере инструкции SELECT.
Sub LeftRightJoinX() Dim dbs как база данных, сначала как набор записей ' Измените эту строку, чтобы включить путь к Northwind ' на твоем компьютере. Установить dbs = OpenDatabase("Борей.mdb") ' Выбрать все отделы, включая те ' без наемных работников. Установить рст = dbs.OpenRecordset _ ("ВЫБЕРИТЕ [Имя отдела], " _ & "Имя и Хр(32) и Фамилия КАК Имя" _ & "ОТ отделов ОСТАВШИСЬ ПРИСОЕДИНИТЬСЯ к сотрудникам" _ & "Отделы ON.[ID отдела] = " _ & "Сотрудники.[Идентификатор отдела] " _ & "ЗАКАЗАТЬ ПО [Название отдела];") ' Заполнить набор записей.