Объединение, это одновременное извлечение информации из двух или нескольких таблиц и отображение этих данных в одном результирующем наборе.
INNER JOIN или JOIN — это внутреннее объединение.
INNER JOIN или JOIN — это внутреннее объединение.
Синтаксис
SELECT имя_столбцa(ов) FROM имя_таблицы_1 INNER JOIN имя_таблицы_2 ON имя_таблицы_1.имя_столбцa = имя_таблицы_2.имя_столбцa
Script.sql
--создание базы CREATE DATABASE zzz GO --выбор базы USE zzz GO /*РОДИТЕЛЬСКАЯ ТАБЛИЦА-СПРАВОЧНИК*/ --создание таблицы CREATE TABLE Author ( IDAuthor INT NOT NULL PRIMARY KEY IDENTITY(1, 1), Name NVARCHAR(50) NOT NULL, ) --вставляем данные INSERT INTO Author(Name) VALUES (N'Пушкин А.С.'), (N'Лермонтов М.Ю.'), (N'Гоголь Н.В.') /*ДОЧЕРНЯЯ ТАБЛИЦА*/ --создание таблицы CREATE TABLE Book ( IDBook INT NOT NULL PRIMARY KEY IDENTITY(1, 1), /* создание внешнего ключа, который ссылается на первичный ключ родительской таблицы */ IDAuthor INT NOT NULL FOREIGN KEY REFERENCES Author(IDAuthor), Name NVARCHAR(1000) NOT NULL, Amount INT NOT NULL, Price MONEY NOT NULL ) --вставляем данные INSERT INTO Book(IDAuthor, Name, Amount, Price) VALUES (3, N'Мертвые души', 5, 10.25), (1, N'Дубровский', 10, 12.45), (3, N'Вечера на хуторе', 15, 13.85), (2, N'Мцыри', 20, 18.15), (1, N'Онегин', 25, 21.70) --вывод данных SELECT Book.Name AS [Название], Author.Name AS [Автор], Book.Amount AS [Количество], Book.Price AS [Цена] FROM Book INNER JOIN Author ON Book.IDAuthor = Author.IDAuthor
--создание базы CREATE DATABASE zzz GO --выбор базы USE zzz GO /*РОДИТЕЛЬСКАЯ ТАБЛИЦА-СПРАВОЧНИК*/ --создание таблицы CREATE TABLE Author ( IDAuthor INT NOT NULL PRIMARY KEY IDENTITY(1, 1), Name NVARCHAR(50) NOT NULL, ) --вставляем данные INSERT INTO Author(Name) VALUES (N'Пушкин А.С.'), (N'Лермонтов М.Ю.'), (N'Гоголь Н.В.') /*ДОЧЕРНЯЯ ТАБЛИЦА*/ --создание таблицы CREATE TABLE Book ( IDBook INT NOT NULL PRIMARY KEY IDENTITY(1, 1), /* создание внешнего ключа, который ссылается на первичный ключ родительской таблицы */ IDAuthor INT NOT NULL FOREIGN KEY REFERENCES Author(IDAuthor), Name NVARCHAR(1000) NOT NULL, Amount INT NOT NULL, Price MONEY NOT NULL ) --вставляем данные INSERT INTO Book(IDAuthor, Name, Amount, Price) VALUES (3, N'Мертвые души', 5, 10.25), (1, N'Дубровский', 10, 12.45), (3, N'Вечера на хуторе', 15, 13.85), (2, N'Мцыри', 20, 18.15), (1, N'Онегин', 25, 21.70) --вывод данных SELECT Book.Name AS [Название], Author.Name AS [Автор], Book.Amount AS [Количество], Book.Price AS [Цена] FROM Book INNER JOIN Author ON Book.IDAuthor = Author.IDAuthor
Название Автор Количество Цена
Мертвые души Гоголь Н.В. 5 10,25
Дубровский Пушкин А.С. 10 12,45
Вечера на хуторе Гоголь Н.В. 15 13,85
Мцыри Лермонтов М.Ю. 20 18,15
Онегин Пушкин А.С. 25 21,70
Мертвые души Гоголь Н.В. 5 10,25
Дубровский Пушкин А.С. 10 12,45
Вечера на хуторе Гоголь Н.В. 15 13,85
Мцыри Лермонтов М.Ю. 20 18,15
Онегин Пушкин А.С. 25 21,70