T-SQL - объединение таблиц
Сервер MS SQL JoinsПредложение используется для объединения записей из двух или более таблиц в базе данных. JOIN - это средство для объединения полей из двух таблиц с использованием значений, общих для каждой из них.
Рассмотрим следующие две таблицы: (a) Таблица 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 - Возвращает декартово произведение наборов записей из двух или более объединенных таблиц.