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つ以上の結合されたテーブルからのレコードセットのデカルト積を返します。