Предложение MS SQL Server Joins используется для объединения записей из двух или более таблиц в базе данных. JOIN — это средство для объединения полей из двух таблиц с использованием значений, общих для каждой.
Рассмотрим следующие две таблицы: (а) таблица CUSTOMERS выглядит следующим образом —
ID NAME AGE ADDRESS SALARY 1 Ramesh 32 Ahmedabad 2000.00 2 Khilan 25 Delhi 1500.00 3 kaushik 23 Kota 2000.00 4 Chaitali 25 Mumbai 6500.00 5 Hardik 27 Bhopal 8500.00 6 Komal 22 MP 4500.00 7 Muffy 24 Indore 10000.00
(б) Другая таблица — это ЗАКАЗЫ в следующем порядке:
OID DATE CUSTOMER_ID AMOUNT 100 2009-10-08 00:00:00.000 3 1500.00 101 2009-11-20 00:00:00.000 2 1560.00 102 2009-10-08 00:00:00.000 3 3000.00 103 2008-05-20 00:00:00.000 4 2060.00
Давайте объединим эти две таблицы в нашем операторе SELECT следующим образом:
SELECT ID, NAME, AGE, AMOUNT FROM CUSTOMERS, ORDERS WHERE CUSTOMERS.ID = ORDERS.CUSTOMER_ID OR SELECT A.ID, A.NAME, A.AGE, B.AMOUNT FROM CUSTOMERS A inner join ORDERS B on A.ID = B.Customer_ID
Приведенная выше команда выдаст следующий вывод.
ID NAME AGE AMOUNT 2 Khilan 25 1560.00 3 kaushik 23 1500.00 3 kaushik 23 3000.00 4 Chaitali 25 2060.00
Заметно, что соединение выполняется в предложении WHERE. Для объединения таблиц можно использовать несколько операторов, например =, <,>, <>, <=,> =,! =, BETWEEN, LIKE и NOT; все они могут быть использованы для объединения таблиц. Однако наиболее распространенным оператором является символ равенства.
MS SQL Server Типы соединения —
В MS SQL Server доступны разные типы объединений —
INNER JOIN — возвращает строки, если в обеих таблицах есть совпадение.
LEFT JOIN — возвращает все строки из левой таблицы, даже если в правой таблице нет совпадений.
RIGHT JOIN — возвращает все строки из правой таблицы, даже если в левой таблице нет совпадений.
FULL JOIN — возвращает строки, если в одной из таблиц есть совпадение.
SELF JOIN — используется для соединения таблицы с самим собой, как если бы эта таблица была двумя таблицами, временно переименовывая хотя бы одну таблицу в операторе MS SQL Server.
CARTESIAN JOIN — Возвращает декартово произведение наборов записей из двух или более объединенных таблиц.