T-SQL-テーブルの結合
MS SQL Server Joins句は、データベース内の2つ以上のテーブルのレコードを結合するために使用されます。JOINは、それぞれに共通の値を使用して2つのテーブルのフィールドを結合するための手段です。
次の2つのテーブルについて考えてみます。(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
(b)別のテーブルは次のようなORDERSです-
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ステートメントでこれら2つのテーブルを結合しましょう。
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 SQLServerの結合タイプ-
MS SQLServerで使用できる結合にはさまざまな種類があります-
INNER JOIN −両方のテーブルに一致する場合に行を返します。
LEFT JOIN −右側のテーブルに一致するものがない場合でも、左側のテーブルからすべての行を返します。
RIGHT JOIN −左側のテーブルに一致するものがない場合でも、右側のテーブルからすべての行を返します。
FULL JOIN −テーブルの1つに一致する場合、行を返します。
SELF JOIN −これは、テーブルが2つのテーブルであるかのようにテーブルをそれ自体に結合するために使用され、MS SQLServerステートメントの少なくとも1つのテーブルの名前を一時的に変更します。
CARTESIAN JOIN −2つ以上の結合されたテーブルからのレコードセットのデカルト積を返します。