Разновидности JOIN
- CROSS – перекрёстное соединение (декартово произведение, используются всевозможные комбинации строк).
- INNER – внутреннее соединение (соединяются только те строки, где найдены совпадающие значения столбца).
- LEFT(OUTER) – левое внешнее соединение (включает в себя все строки из таблицы А (совпадающие и несовпадающие) + совпадающие значения из таблицы Б. Для строк из таблицы А, которым не найдено соответствие, значение NULL заносятся в столбцы извлекаемые из таблицы Б.
- RIGHT(OUTER) – правое внешнее соединение, является обратным внешним соединением к предыдущему, т.е. все строки из таблицы Б (правой таблицы) представлены в соединении и они дополнены совпадающими строками из таблицы А.
- FULL(OUTER) – полное внешнее соединение – это комбинация левого и правого соединения, т.е. присутствуют все строки из обоих таблиц. В несовпадающих строках значения столбцов заполняются значениями 0.
- Соединение типа UNION – является обратным по отношению к INNER, т.е. включает только те строки из таблиц, для которых не найдены совпадения.
Таблица 2.1.1
Таблица 2.1.2
Использование JOIN при создании запросов в БД Издательства
Синтаксис:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
таблица А [тип соединения] | |
JOIN таблица B ON | |
предикат |
Задание 1. Найти авторов, живущих в одном городе с издателями.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT au_id, city | |
FROM authors | |
INNER JOIN publishers | |
ON authors.city=publishers.city; |
Для таблицы titles используем обозначение – t, для таблицы publishers – p.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT t.title_id, t.title_name, p.state, p.country | |
FROM titles t | |
INNER JOIN publishers p | |
ON t.pub_id=p.pub_id | |
WHERE p.state=’CA’ | |
OR p.country NOT IN (‘USA’, ‘Canada’, ‘Mexico’) | |
ORDER BY t.title_id ASC; |
Комментарии
Отправить комментарий